add documentation for ai agents (#3115)

* add documentation for ai agents

* docs: consolidate CLAUDE.md and CONTRIBUTING.md, add style guidelines

- Refactor CLAUDE.md to reference CONTRIBUTING.md for build/test/format info
- Expand CONTRIBUTING.md with comprehensive build targets, env vars, and testing
- Add code style guidelines section with conventional commits
- Standardize SDK prettier config to use single quotes (matching web)
- Add project-level Claude Code settings to disable co-author attribution

* style(sdk): apply prettier with single quotes

Run prettier across sdk/base and sdk/package to apply the
standardized quote style (single quotes matching web).

* docs: add USER.md for per-developer TODO filtering

- Add agents/USER.md to .gitignore (contains user identifier)
- Document session startup flow in CLAUDE.md:
  - Create USER.md if missing, prompting for identifier
  - Filter TODOs by @username tags
  - Offer relevant TODOs on session start

* docs: add i18n documentation task to agent TODOs

* docs: document i18n ID patterns in core/

Add agents/i18n-patterns.md covering rust-i18n setup, translation file
format, t!() macro usage, key naming conventions, and locale selection.
Remove completed TODO item and add reference in CLAUDE.md.

* chore: clarify that all builds work on any OS with Docker
This commit is contained in:
Aiden McClelland
2026-02-06 00:10:16 +01:00
committed by GitHub
parent 86ca23c093
commit f2142f0bb3
280 changed files with 6793 additions and 5515 deletions

View File

@@ -1,8 +1,8 @@
import { SmtpValue } from "../../types"
import { GetSystemSmtp, Patterns } from "../../util"
import { InputSpec, InputSpecOf } from "./builder/inputSpec"
import { Value } from "./builder/value"
import { Variants } from "./builder/variants"
import { SmtpValue } from '../../types'
import { GetSystemSmtp, Patterns } from '../../util'
import { InputSpec, InputSpecOf } from './builder/inputSpec'
import { Value } from './builder/value'
import { Variants } from './builder/variants'
/**
* Base SMTP settings, to be used by StartOS for system wide SMTP
@@ -11,12 +11,12 @@ export const customSmtp: InputSpec<SmtpValue> = InputSpec.of<
InputSpecOf<SmtpValue>
>({
server: Value.text({
name: "SMTP Server",
name: 'SMTP Server',
required: true,
default: null,
}),
port: Value.number({
name: "Port",
name: 'Port',
required: true,
default: 587,
min: 1,
@@ -24,20 +24,20 @@ export const customSmtp: InputSpec<SmtpValue> = InputSpec.of<
integer: true,
}),
from: Value.text({
name: "From Address",
name: 'From Address',
required: true,
default: null,
placeholder: "Example Name <test@example.com>",
inputmode: "email",
placeholder: 'Example Name <test@example.com>',
inputmode: 'email',
patterns: [Patterns.emailWithName],
}),
login: Value.text({
name: "Login",
name: 'Login',
required: true,
default: null,
}),
password: Value.text({
name: "Password",
name: 'Password',
required: false,
default: null,
masked: true,
@@ -45,24 +45,24 @@ export const customSmtp: InputSpec<SmtpValue> = InputSpec.of<
})
const smtpVariants = Variants.of({
disabled: { name: "Disabled", spec: InputSpec.of({}) },
disabled: { name: 'Disabled', spec: InputSpec.of({}) },
system: {
name: "System Credentials",
name: 'System Credentials',
spec: InputSpec.of({
customFrom: Value.text({
name: "Custom From Address",
name: 'Custom From Address',
description:
"A custom from address for this service. If not provided, the system from address will be used.",
'A custom from address for this service. If not provided, the system from address will be used.',
required: false,
default: null,
placeholder: "<name>test@example.com",
inputmode: "email",
placeholder: '<name>test@example.com',
inputmode: 'email',
patterns: [Patterns.email],
}),
}),
},
custom: {
name: "Custom Credentials",
name: 'Custom Credentials',
spec: customSmtp,
},
})
@@ -71,11 +71,11 @@ const smtpVariants = Variants.of({
*/
export const smtpInputSpec = Value.dynamicUnion(async ({ effects }) => {
const smtp = await new GetSystemSmtp(effects).once()
const disabled = smtp ? [] : ["system"]
const disabled = smtp ? [] : ['system']
return {
name: "SMTP",
description: "Optionally provide an SMTP server for sending emails",
default: "disabled",
name: 'SMTP',
description: 'Optionally provide an SMTP server for sending emails',
default: 'disabled',
disabled,
variants: smtpVariants,
}