@erclx/aitk 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +99 -0
- package/claude/.claude-plugin/plugin.json +19 -0
- package/claude/skills/bash-script/SKILL.md +96 -0
- package/claude/skills/bash-script/references/patterns.md +349 -0
- package/claude/skills/ci-workflow/SKILL.md +52 -0
- package/claude/skills/ci-workflow/references/workflows.md +74 -0
- package/claude/skills/claude-address-review/SKILL.md +107 -0
- package/claude/skills/claude-autoship/SKILL.md +137 -0
- package/claude/skills/claude-design-extract/SKILL.md +69 -0
- package/claude/skills/claude-design-propose/SKILL.md +75 -0
- package/claude/skills/claude-diagram/SKILL.md +126 -0
- package/claude/skills/claude-docs/SKILL.md +204 -0
- package/claude/skills/claude-feature/REQUIREMENT.md +35 -0
- package/claude/skills/claude-feature/SKILL.md +148 -0
- package/claude/skills/claude-groundwork/SKILL.md +148 -0
- package/claude/skills/claude-groundwork/references/folder-format.md +107 -0
- package/claude/skills/claude-memory-capture/SKILL.md +80 -0
- package/claude/skills/claude-memory-review/REQUIREMENT.md +37 -0
- package/claude/skills/claude-memory-review/SKILL.md +206 -0
- package/claude/skills/claude-orchestrate/SKILL.md +125 -0
- package/claude/skills/claude-pr-review/SKILL.md +150 -0
- package/claude/skills/claude-review/SKILL.md +136 -0
- package/claude/skills/claude-roadmap/SKILL.md +61 -0
- package/claude/skills/claude-roadmap/references/roadmap.md +52 -0
- package/claude/skills/claude-screencast/SKILL.md +160 -0
- package/claude/skills/claude-seed-sync/SKILL.md +141 -0
- package/claude/skills/claude-slides-draft/SKILL.md +62 -0
- package/claude/skills/claude-standards-audit/REQUIREMENT.md +33 -0
- package/claude/skills/claude-standards-audit/SKILL.md +79 -0
- package/claude/skills/claude-standards-audit/references/branch.md +49 -0
- package/claude/skills/claude-standards-audit/references/pr.md +124 -0
- package/claude/skills/claude-tasks/SKILL.md +123 -0
- package/claude/skills/claude-ui-test/SKILL.md +75 -0
- package/claude/skills/claude-ux-audit/SKILL.md +78 -0
- package/claude/skills/claude-worktree/SKILL.md +79 -0
- package/claude/skills/cli-script/SKILL.md +47 -0
- package/claude/skills/cli-script/references/template.md +43 -0
- package/claude/skills/create-rule/SKILL.md +68 -0
- package/claude/skills/create-skill/REQUIREMENT.md +30 -0
- package/claude/skills/create-skill/SKILL.md +24 -0
- package/claude/skills/create-snippet/SKILL.md +28 -0
- package/claude/skills/create-snippet/references/snippets.md +57 -0
- package/claude/skills/create-standard/SKILL.md +31 -0
- package/claude/skills/create-standard/references/standard.md +52 -0
- package/claude/skills/docs-sync/SKILL.md +87 -0
- package/claude/skills/git-branch/REQUIREMENT.md +38 -0
- package/claude/skills/git-branch/SKILL.md +60 -0
- package/claude/skills/git-branch/references/branch.md +49 -0
- package/claude/skills/git-commit/REQUIREMENT.md +33 -0
- package/claude/skills/git-commit/SKILL.md +51 -0
- package/claude/skills/git-commit/references/commit.md +63 -0
- package/claude/skills/git-followup/REQUIREMENT.md +38 -0
- package/claude/skills/git-followup/SKILL.md +35 -0
- package/claude/skills/git-issue/REQUIREMENT.md +38 -0
- package/claude/skills/git-issue/SKILL.md +69 -0
- package/claude/skills/git-issue/references/issue.md +84 -0
- package/claude/skills/git-pr/REQUIREMENT.md +37 -0
- package/claude/skills/git-pr/SKILL.md +119 -0
- package/claude/skills/git-pr/references/branch.md +49 -0
- package/claude/skills/git-pr/references/pr.md +124 -0
- package/claude/skills/git-ship/REQUIREMENT.md +34 -0
- package/claude/skills/git-ship/SKILL.md +39 -0
- package/claude/skills/git-split/REQUIREMENT.md +38 -0
- package/claude/skills/git-split/SKILL.md +160 -0
- package/claude/skills/git-split/references/branch.md +49 -0
- package/claude/skills/git-split/references/pr.md +124 -0
- package/claude/skills/git-stage/REQUIREMENT.md +36 -0
- package/claude/skills/git-stage/SKILL.md +74 -0
- package/claude/skills/git-stage/references/commit.md +63 -0
- package/claude/skills/git-worktree/REQUIREMENT.md +37 -0
- package/claude/skills/git-worktree/SKILL.md +120 -0
- package/claude/skills/migration-claude-md/SKILL.md +74 -0
- package/claude/skills/migration-context/SKILL.md +93 -0
- package/claude/skills/migration-standards/SKILL.md +75 -0
- package/claude/skills/project-commands/SKILL.md +73 -0
- package/claude/skills/session-resume/SKILL.md +36 -0
- package/claude/skills/setup-gov/SKILL.md +71 -0
- package/claude/skills/setup-indexes/SKILL.md +148 -0
- package/claude/skills/setup-init/SKILL.md +114 -0
- package/claude/skills/setup-plugins/SKILL.md +81 -0
- package/claude/skills/setup-plugins/references/plugin-catalog.md +53 -0
- package/claude/skills/setup-verify/SKILL.md +51 -0
- package/claude/skills/systematic-debugging/SKILL.md +70 -0
- package/claude/skills/toolkit-cli/SKILL.md +38 -0
- package/claude/skills/toolkit-feedback/SKILL.md +80 -0
- package/claude/skills/toolkit-operator/SKILL.md +45 -0
- package/claude/skills/toolkit-triage/SKILL.md +63 -0
- package/claude/skills/youtube-transcripts/SKILL.md +34 -0
- package/docs/agents.md +371 -0
- package/docs/ai-workflow.md +157 -0
- package/docs/index.md +20 -0
- package/docs/operating-model.md +106 -0
- package/docs/target-projects.md +183 -0
- package/docs/visual-design-workflow.md +136 -0
- package/docs/zshrc-aliases.md +65 -0
- package/governance/rules/claude/500-prose.md +12 -0
- package/governance/rules/claude/510-context.md +16 -0
- package/governance/rules/claude/520-wireframes.md +12 -0
- package/governance/rules/claude/530-requirements.md +11 -0
- package/governance/rules/claude/540-architecture.md +11 -0
- package/governance/rules/claude/550-design.md +11 -0
- package/governance/rules/claude/555-tasks.md +12 -0
- package/governance/rules/claude/560-diagrams.md +11 -0
- package/governance/rules/claude/570-skill.md +18 -0
- package/governance/rules/claude/580-readme.md +11 -0
- package/governance/rules/claude/590-rule-authoring.md +12 -0
- package/governance/rules/core/000-constitution.md +30 -0
- package/governance/rules/core/010-testing.md +35 -0
- package/governance/rules/core/020-concurrency.md +22 -0
- package/governance/rules/core/030-error-handling.md +31 -0
- package/governance/rules/core/040-performance.md +20 -0
- package/governance/rules/core/050-logging.md +20 -0
- package/governance/rules/core/060-naming.md +19 -0
- package/governance/rules/core/070-planning.md +13 -0
- package/governance/rules/core/080-config-comments.md +22 -0
- package/governance/rules/framework/200-react.md +51 -0
- package/governance/rules/framework/210-astro.md +41 -0
- package/governance/rules/framework/220-fastapi.md +43 -0
- package/governance/rules/framework/230-nextjs.md +48 -0
- package/governance/rules/framework/250-tailwind.md +32 -0
- package/governance/rules/framework/260-shadcn.md +34 -0
- package/governance/rules/lang/100-typescript.md +40 -0
- package/governance/rules/lang/110-python.md +42 -0
- package/governance/rules/lib/300-testing-ts.md +38 -0
- package/governance/rules/lib/310-zod.md +25 -0
- package/governance/rules/lib/320-tanstack-query.md +32 -0
- package/governance/rules/lib/330-testing-py.md +44 -0
- package/governance/rules/lib/340-pydantic.md +38 -0
- package/governance/rules/lib/350-security-web.md +31 -0
- package/governance/rules/ui/400-ui.md +34 -0
- package/governance/rules/ui/410-a11y.md +44 -0
- package/governance/rules/ui/420-forms.md +34 -0
- package/governance/rules/ui/430-ux-completeness.md +62 -0
- package/governance/stacks/astro.toml +2 -0
- package/governance/stacks/base.toml +2 -0
- package/governance/stacks/node.toml +2 -0
- package/governance/stacks/python-fastapi.toml +2 -0
- package/governance/stacks/python.toml +2 -0
- package/governance/stacks/react.toml +2 -0
- package/package.json +67 -0
- package/scripts/config.sh +11 -0
- package/scripts/core/bootstrap.sh +81 -0
- package/scripts/core/check-plugin-boundary.sh +45 -0
- package/scripts/core/check-skill-paths.sh +25 -0
- package/scripts/core/clean.sh +36 -0
- package/scripts/core/install-check.sh +93 -0
- package/scripts/core/regen-claude-copies.sh +26 -0
- package/scripts/core/regen-indexes.sh +10 -0
- package/scripts/core/regen-skill-references.sh +27 -0
- package/scripts/core/snapshot.sh +132 -0
- package/scripts/core/update.sh +35 -0
- package/scripts/core/verify.sh +201 -0
- package/scripts/docs/list.sh +129 -0
- package/scripts/gov/list.sh +234 -0
- package/scripts/lib/frontmatter.sh +30 -0
- package/scripts/lib/gov.sh +14 -0
- package/scripts/lib/sandbox-fixtures.sh +109 -0
- package/scripts/lib/sandbox-git.sh +73 -0
- package/scripts/lib/tooling.sh +24 -0
- package/scripts/lib/ui.sh +173 -0
- package/scripts/lib/worktree.sh +20 -0
- package/scripts/manage-sandbox.sh +453 -0
- package/scripts/snippets/create.sh +156 -0
- package/scripts/standards/list.sh +91 -0
- package/scripts/tooling/create.sh +109 -0
- package/scripts/tooling/ref.sh +141 -0
- package/scripts/tooling/verify.sh +179 -0
- package/snippets/claude/decision-memo.md +39 -0
- package/snippets/claude/feature-recap.md +19 -0
- package/snippets/claude/figma-steps.md +18 -0
- package/snippets/claude/orchestrator-resume.md +23 -0
- package/snippets/claude/orchestrator-sweep.md +10 -0
- package/snippets/compact-summary.md +5 -0
- package/snippets/create-snippet.md +7 -0
- package/snippets/decision-help.md +6 -0
- package/snippets/meta-prompt.md +14 -0
- package/snippets/research-prompt.md +7 -0
- package/snippets/session-notes.md +11 -0
- package/snippets/snippets.toml +6 -0
- package/snippets/step-by-step.md +10 -0
- package/snippets/web-research.md +21 -0
- package/src/claude/gitignore.ts +51 -0
- package/src/claude/seeds-list.ts +47 -0
- package/src/claude/seeds.ts +124 -0
- package/src/claude/settings.ts +151 -0
- package/src/cli-run.ts +43 -0
- package/src/cli.ts +111 -0
- package/src/commands/claude.ts +349 -0
- package/src/commands/design.ts +39 -0
- package/src/commands/docs.ts +59 -0
- package/src/commands/feedback-format.ts +23 -0
- package/src/commands/feedback.ts +103 -0
- package/src/commands/gov.ts +268 -0
- package/src/commands/indexes.ts +182 -0
- package/src/commands/init.ts +117 -0
- package/src/commands/pass-through.ts +39 -0
- package/src/commands/sandbox.ts +315 -0
- package/src/commands/slides.ts +106 -0
- package/src/commands/snippets.ts +236 -0
- package/src/commands/standards.ts +89 -0
- package/src/commands/sync.ts +211 -0
- package/src/commands/tasks.ts +185 -0
- package/src/commands/tooling.ts +432 -0
- package/src/commands/transcripts.ts +48 -0
- package/src/commands/wiki.ts +101 -0
- package/src/copy.ts +30 -0
- package/src/design/parse.ts +79 -0
- package/src/design/render.ts +170 -0
- package/src/docs/read.ts +59 -0
- package/src/exec.ts +17 -0
- package/src/frontmatter.ts +13 -0
- package/src/github-format.ts +13 -0
- package/src/github.ts +20 -0
- package/src/gov/adapter.ts +73 -0
- package/src/gov/install.ts +103 -0
- package/src/gov/payload.ts +39 -0
- package/src/gov/stacks.ts +124 -0
- package/src/indexes/frontmatter.ts +46 -0
- package/src/indexes/regen.ts +84 -0
- package/src/indexes/render.ts +181 -0
- package/src/indexes/walk.ts +111 -0
- package/src/init/flags.ts +66 -0
- package/src/init/plan.ts +128 -0
- package/src/init/run.ts +46 -0
- package/src/init/steps.ts +91 -0
- package/src/sandbox/coverage.ts +115 -0
- package/src/sandbox/expect.ts +412 -0
- package/src/slides/layouts.ts +391 -0
- package/src/slides/open.ts +18 -0
- package/src/slides/parse.ts +84 -0
- package/src/slides/render.ts +88 -0
- package/src/slides/styles.ts +44 -0
- package/src/snippets/adapter.ts +34 -0
- package/src/snippets/categories.ts +59 -0
- package/src/snippets/install.ts +125 -0
- package/src/snippets/list.ts +32 -0
- package/src/snippets/presets.ts +50 -0
- package/src/standards/adapter.ts +51 -0
- package/src/standards/index-refresh.ts +44 -0
- package/src/standards/install.ts +52 -0
- package/src/sync/check.ts +269 -0
- package/src/sync/engine.ts +416 -0
- package/src/sync/git.ts +204 -0
- package/src/sync/stamp.ts +202 -0
- package/src/sync/target.ts +79 -0
- package/src/sync/workflow.ts +201 -0
- package/src/target.ts +43 -0
- package/src/tasks/archive.ts +304 -0
- package/src/tooling/gitignore.ts +122 -0
- package/src/tooling/inject.ts +214 -0
- package/src/tooling/list.ts +39 -0
- package/src/tooling/manifest.ts +178 -0
- package/src/tooling/package.ts +166 -0
- package/src/tooling/scan.ts +186 -0
- package/src/transcripts/fetch.ts +156 -0
- package/src/transcripts/metadata.ts +54 -0
- package/src/transcripts/vtt.ts +114 -0
- package/src/ui.ts +187 -0
- package/src/wiki/init.ts +85 -0
- package/standards/architecture.md +41 -0
- package/standards/bundled/branch.md +49 -0
- package/standards/bundled/commit.md +63 -0
- package/standards/bundled/issue.md +84 -0
- package/standards/bundled/pr.md +124 -0
- package/standards/bundled/roadmap.md +52 -0
- package/standards/bundled/snippets.md +57 -0
- package/standards/bundled/standard.md +52 -0
- package/standards/context.md +132 -0
- package/standards/design.md +31 -0
- package/standards/diagrams.md +55 -0
- package/standards/index.md +21 -0
- package/standards/prose.md +122 -0
- package/standards/readme.md +163 -0
- package/standards/requirements.md +61 -0
- package/standards/rule.md +79 -0
- package/standards/skill.md +257 -0
- package/standards/tasks.md +140 -0
- package/standards/versioning.md +47 -0
- package/standards/wireframes.md +67 -0
- package/tooling/astro/configs/astro.config.mjs +17 -0
- package/tooling/astro/configs/eslint.config.js +79 -0
- package/tooling/astro/configs/playwright.config.ts +25 -0
- package/tooling/astro/configs/tsconfig.json +12 -0
- package/tooling/astro/configs/vitest.config.ts +22 -0
- package/tooling/astro/manifest.toml +32 -0
- package/tooling/astro/reference.md +60 -0
- package/tooling/base/configs/.editorconfig +5 -0
- package/tooling/base/configs/.github/pull_request_template.md +18 -0
- package/tooling/base/configs/.github/workflows/verify.yml +35 -0
- package/tooling/base/configs/.husky/commit-msg +1 -0
- package/tooling/base/configs/.husky/post-merge +61 -0
- package/tooling/base/configs/.husky/post-rewrite +21 -0
- package/tooling/base/configs/.husky/pre-commit +1 -0
- package/tooling/base/configs/.husky/pre-push +1 -0
- package/tooling/base/configs/.prettierrc +12 -0
- package/tooling/base/configs/.shellcheckrc +1 -0
- package/tooling/base/configs/.vscode/extensions.json +9 -0
- package/tooling/base/configs/.vscode/settings.json +3 -0
- package/tooling/base/configs/commitlint.config.js +11 -0
- package/tooling/base/configs/scripts/clean.sh +45 -0
- package/tooling/base/configs/scripts/update.sh +49 -0
- package/tooling/base/configs/scripts/verify.sh +64 -0
- package/tooling/base/manifest.toml +32 -0
- package/tooling/base/reference.md +114 -0
- package/tooling/base/seeds/.claude/context/ci.md +27 -0
- package/tooling/base/seeds/.claude/context/development.md +32 -0
- package/tooling/base/seeds/.cspell/project-terms.txt +0 -0
- package/tooling/base/seeds/.cspell/tech-stack.txt +19 -0
- package/tooling/base/seeds/.lintstagedrc +8 -0
- package/tooling/base/seeds/.prettierignore +0 -0
- package/tooling/base/seeds/cspell.json +20 -0
- package/tooling/claude/manifest.toml +11 -0
- package/tooling/claude/reference.md +62 -0
- package/tooling/claude/seeds/.claude/ARCHITECTURE.md +13 -0
- package/tooling/claude/seeds/.claude/DESIGN.md +62 -0
- package/tooling/claude/seeds/.claude/REQUIREMENTS.md +18 -0
- package/tooling/claude/seeds/.claude/context/index.md +8 -0
- package/tooling/claude/seeds/.claude/hooks/index-reminder.sh +43 -0
- package/tooling/claude/seeds/.claude/hooks/scratch-guard.sh +45 -0
- package/tooling/claude/seeds/.claude/hooks/standards-audit.sh +61 -0
- package/tooling/claude/seeds/.claude/hooks/tasks-index.sh +60 -0
- package/tooling/claude/seeds/.claude/settings.json +39 -0
- package/tooling/claude/seeds/.claude/tasks/index.md +8 -0
- package/tooling/claude/seeds/.claude/wireframes/index.md +8 -0
- package/tooling/claude/seeds/CLAUDE.md +87 -0
- package/tooling/claude/user/settings.template.json +10 -0
- package/tooling/claude/user/statusline-command.sh +53 -0
- package/tooling/python/configs/.coveragerc +14 -0
- package/tooling/python/configs/.python-version +1 -0
- package/tooling/python/configs/mypy.ini +6 -0
- package/tooling/python/configs/pytest.ini +4 -0
- package/tooling/python/configs/ruff.toml +15 -0
- package/tooling/python/configs/scripts/verify.sh +77 -0
- package/tooling/python/manifest.toml +16 -0
- package/tooling/python/reference.md +66 -0
- package/tooling/python/seeds/.cspell/tech-stack.txt +19 -0
- package/tooling/python/seeds/tests/test_smoke.py +2 -0
- package/tooling/vite-react/configs/playwright.config.ts +25 -0
- package/tooling/vite-react/configs/tsconfig.json +35 -0
- package/tooling/vite-react/configs/vite.config.ts +14 -0
- package/tooling/vite-react/configs/vitest.config.ts +26 -0
- package/tooling/vite-react/manifest.toml +21 -0
- package/tooling/vite-react/reference.md +55 -0
- package/tooling/vite-react/seeds/.cspell/project-terms.txt +1 -0
- package/tooling/vite-react/seeds/.cspell/tech-stack.txt +1 -0
- package/tooling/web/configs/.github/workflows/verify.yml +134 -0
- package/tooling/web/configs/.vscode/extensions.json +13 -0
- package/tooling/web/configs/.vscode/settings.json +10 -0
- package/tooling/web/configs/e2e/home.spec.ts +6 -0
- package/tooling/web/configs/e2e/screenshot.ts +41 -0
- package/tooling/web/configs/eslint.config.js +82 -0
- package/tooling/web/configs/scripts/screenshot.sh +28 -0
- package/tooling/web/configs/scripts/verify.sh +80 -0
- package/tooling/web/configs/src/test/setup.ts +8 -0
- package/tooling/web/manifest.toml +57 -0
- package/tooling/web/reference.md +95 -0
- package/tooling/web/seeds/.cspell/tech-stack.txt +18 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
bunx lint-staged
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
bun run check
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
external-sources=true
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const config = {
|
|
2
|
+
extends: ['@commitlint/config-conventional'],
|
|
3
|
+
rules: {
|
|
4
|
+
'subject-case': [0],
|
|
5
|
+
'header-max-length': [2, 'always', 72],
|
|
6
|
+
'scope-case': [2, 'always', 'lower-case'],
|
|
7
|
+
'subject-full-stop': [2, 'never', '.'],
|
|
8
|
+
},
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default config
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
set -o pipefail
|
|
4
|
+
|
|
5
|
+
GREEN='\033[0;32m'
|
|
6
|
+
RED='\033[0;31m'
|
|
7
|
+
WHITE='\033[1;37m'
|
|
8
|
+
GREY='\033[0;90m'
|
|
9
|
+
NC='\033[0m'
|
|
10
|
+
|
|
11
|
+
log_info() { echo -e "${GREY}│${NC} ${GREEN}✓${NC} $1"; }
|
|
12
|
+
log_error() {
|
|
13
|
+
echo -e "${GREY}│${NC} ${RED}✗${NC} $1"
|
|
14
|
+
exit 1
|
|
15
|
+
}
|
|
16
|
+
log_step() { echo -e "${GREY}│${NC}\n${GREY}├${NC} ${WHITE}$1${NC}"; }
|
|
17
|
+
log_rem() { echo -e "${GREY}│${NC} ${RED}-${NC} $1"; }
|
|
18
|
+
|
|
19
|
+
check_dependencies() {
|
|
20
|
+
command -v bun >/dev/null 2>&1 || log_error "bun is not installed"
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
main() {
|
|
24
|
+
check_dependencies
|
|
25
|
+
|
|
26
|
+
echo -e "${GREY}┌${NC}"
|
|
27
|
+
|
|
28
|
+
echo -e "${GREY}├${NC} ${WHITE}Cleaning artifacts${NC}"
|
|
29
|
+
rm -rf node_modules
|
|
30
|
+
|
|
31
|
+
log_rem "node_modules/"
|
|
32
|
+
|
|
33
|
+
log_step "Cleaning cache"
|
|
34
|
+
bun pm cache rm
|
|
35
|
+
log_info "Package manager cache cleared"
|
|
36
|
+
|
|
37
|
+
log_step "Rehydrating project"
|
|
38
|
+
bun install
|
|
39
|
+
log_info "Dependencies installed"
|
|
40
|
+
|
|
41
|
+
echo -e "${GREY}└${NC}\n"
|
|
42
|
+
echo -e "${GREEN}✓ Clean complete${NC}"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
main "$@"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
set -o pipefail
|
|
4
|
+
|
|
5
|
+
GREEN='\033[0;32m'
|
|
6
|
+
YELLOW='\033[0;33m'
|
|
7
|
+
RED='\033[0;31m'
|
|
8
|
+
WHITE='\033[1;37m'
|
|
9
|
+
GREY='\033[0;90m'
|
|
10
|
+
NC='\033[0m'
|
|
11
|
+
|
|
12
|
+
log_info() { echo -e "${GREY}│${NC} ${GREEN}✓${NC} $1"; }
|
|
13
|
+
log_warn() { echo -e "${GREY}│${NC} ${YELLOW}!${NC} $1"; }
|
|
14
|
+
log_error() {
|
|
15
|
+
echo -e "${GREY}│${NC} ${RED}✗${NC} $1"
|
|
16
|
+
exit 1
|
|
17
|
+
}
|
|
18
|
+
log_step() { echo -e "${GREY}│${NC}\n${GREY}├${NC} ${WHITE}$1${NC}"; }
|
|
19
|
+
|
|
20
|
+
pipe_output() { while IFS= read -r line; do echo -e "${GREY}│${NC} $line"; done; }
|
|
21
|
+
|
|
22
|
+
check_dependencies() {
|
|
23
|
+
command -v bun >/dev/null 2>&1 || log_error "bun is not installed"
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
main() {
|
|
27
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
28
|
+
|
|
29
|
+
check_dependencies
|
|
30
|
+
|
|
31
|
+
echo -e "${GREY}┌${NC}"
|
|
32
|
+
|
|
33
|
+
echo -e "${GREY}├${NC} ${WHITE}Interactive dependency update${NC}"
|
|
34
|
+
echo -e "${GREY}│${NC}"
|
|
35
|
+
bun update --interactive
|
|
36
|
+
|
|
37
|
+
log_step "Verifying project health"
|
|
38
|
+
if [ -f "$SCRIPT_DIR/verify.sh" ]; then
|
|
39
|
+
VERIFY_NESTED=true "$SCRIPT_DIR/verify.sh"
|
|
40
|
+
log_info "All checks passed"
|
|
41
|
+
else
|
|
42
|
+
log_warn "Verification script not found, skipping."
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
echo -e "${GREY}└${NC}\n"
|
|
46
|
+
echo -e "${GREEN}✓ Update complete${NC}"
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
main "$@"
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
set -o pipefail
|
|
4
|
+
|
|
5
|
+
GREEN='\033[0;32m'
|
|
6
|
+
RED='\033[0;31m'
|
|
7
|
+
WHITE='\033[1;37m'
|
|
8
|
+
GREY='\033[0;90m'
|
|
9
|
+
NC='\033[0m'
|
|
10
|
+
|
|
11
|
+
NESTED="${VERIFY_NESTED:-false}"
|
|
12
|
+
|
|
13
|
+
log_info() { echo -e "${GREY}│${NC} ${GREEN}✓${NC} $1"; }
|
|
14
|
+
log_error() {
|
|
15
|
+
echo -e "${GREY}│${NC} ${RED}✗${NC} $1"
|
|
16
|
+
exit 1
|
|
17
|
+
}
|
|
18
|
+
log_step() { echo -e "${GREY}│${NC}\n${GREY}├${NC} ${WHITE}$1${NC}"; }
|
|
19
|
+
|
|
20
|
+
pipe_output() { while IFS= read -r line; do echo -e "${GREY}│${NC} $line"; done; }
|
|
21
|
+
|
|
22
|
+
check_dependencies() {
|
|
23
|
+
command -v bun >/dev/null 2>&1 || log_error "bun is not installed"
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
run_check() {
|
|
27
|
+
local cmd=$1
|
|
28
|
+
local err_msg=$2
|
|
29
|
+
local output
|
|
30
|
+
if ! output=$(eval "$cmd" 2>&1); then
|
|
31
|
+
echo "$output" | pipe_output
|
|
32
|
+
log_error "$err_msg"
|
|
33
|
+
fi
|
|
34
|
+
echo "$output" | pipe_output
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
main() {
|
|
38
|
+
check_dependencies
|
|
39
|
+
|
|
40
|
+
if [ "$NESTED" = false ]; then echo -e "${GREY}┌${NC}"; fi
|
|
41
|
+
|
|
42
|
+
echo -e "${GREY}├${NC} ${WHITE}Formatting${NC}"
|
|
43
|
+
run_check "bun run format" "Format failed"
|
|
44
|
+
log_info "Format applied"
|
|
45
|
+
|
|
46
|
+
log_step "Format check"
|
|
47
|
+
run_check "bun run check:format" "Format check failed"
|
|
48
|
+
log_info "Format check passed"
|
|
49
|
+
|
|
50
|
+
log_step "Spelling"
|
|
51
|
+
run_check "bun run check:spell" "Spell check failed"
|
|
52
|
+
log_info "Spell check passed"
|
|
53
|
+
|
|
54
|
+
log_step "Shell"
|
|
55
|
+
run_check "bun run check:shell" "Shell check failed"
|
|
56
|
+
log_info "Shell check passed"
|
|
57
|
+
|
|
58
|
+
if [ "$NESTED" = false ]; then
|
|
59
|
+
echo -e "${GREY}└${NC}\n"
|
|
60
|
+
echo -e "${GREEN}✓ Verification passed${NC}"
|
|
61
|
+
fi
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
main "$@"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
[stack]
|
|
2
|
+
name = "base"
|
|
3
|
+
extends = ""
|
|
4
|
+
runtime = "bun"
|
|
5
|
+
scaffold = ""
|
|
6
|
+
|
|
7
|
+
[sync]
|
|
8
|
+
source = "configs"
|
|
9
|
+
|
|
10
|
+
[dependencies.dev]
|
|
11
|
+
packages = [
|
|
12
|
+
"prettier",
|
|
13
|
+
"cspell",
|
|
14
|
+
"husky",
|
|
15
|
+
"@commitlint/cli",
|
|
16
|
+
"@commitlint/config-conventional",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[scripts]
|
|
20
|
+
"check:spell" = "cspell '**' '.*/**' '.*' --no-progress --color --show-context"
|
|
21
|
+
"check:format" = "prettier --check --log-level warn --ignore-path .gitignore --ignore-path .prettierignore . && shfmt --diff --indent 2 scripts/"
|
|
22
|
+
"check:shell" = "find scripts -name '*.sh' -exec shellcheck --severity=warning {} +"
|
|
23
|
+
"format" = "prettier --write --log-level warn --ignore-path .gitignore --ignore-path .prettierignore . && shfmt --write --indent 2 scripts/"
|
|
24
|
+
"prepare" = "husky"
|
|
25
|
+
"check" = "./scripts/verify.sh"
|
|
26
|
+
"clean" = "./scripts/clean.sh"
|
|
27
|
+
"update" = "./scripts/update.sh"
|
|
28
|
+
|
|
29
|
+
[gitignore]
|
|
30
|
+
"# System" = [".DS_Store"]
|
|
31
|
+
"# Dependencies" = ["node_modules/"]
|
|
32
|
+
"# Secrets" = [".env", ".env.*", "*.local", "!.env.example"]
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Tooling base reference
|
|
2
|
+
|
|
3
|
+
## Runtime
|
|
4
|
+
|
|
5
|
+
- Use `bun` as package manager and script runner.
|
|
6
|
+
- Use `bunx` instead of `npx` for one-off executables.
|
|
7
|
+
|
|
8
|
+
## Prettier
|
|
9
|
+
|
|
10
|
+
- Config: `.prettierrc` (JSON) at root.
|
|
11
|
+
- Rules: `semi: false`, `singleQuote: true`.
|
|
12
|
+
- Add parser overrides for non-standard extensions (e.g., `.mdx` → `markdown`).
|
|
13
|
+
- Ignore paths via `.gitignore` and `.prettierignore`. Pass both as `--ignore-path` on all prettier invocations.
|
|
14
|
+
- `.prettierignore` is a user-owned seed. It is created empty on install. Projects add their own entries.
|
|
15
|
+
- Use `--log-level warn` on all prettier invocations to suppress per-file `(unchanged)` output.
|
|
16
|
+
|
|
17
|
+
## Dev Dependencies
|
|
18
|
+
|
|
19
|
+
- `prettier`, `cspell`, `husky`, `@commitlint/cli`, `@commitlint/config-conventional`.
|
|
20
|
+
- Install via `bun add -D`.
|
|
21
|
+
- Ensure `.gitignore` contains `node_modules/`.
|
|
22
|
+
|
|
23
|
+
## CSpell
|
|
24
|
+
|
|
25
|
+
- `cspell.json` is a user-owned seed at root. Sync drops it once on first install and never overwrites it. Projects extend it with extra `import` and `dictionaryDefinitions` entries.
|
|
26
|
+
- The seeded baseline includes `version: "0.2"`, `language: "en"`, `useGitignore: true`, `gitignoreRoot: ["."]`, dictionary definitions for `project-terms` and `tech-stack`, and `ignorePaths: [".cspell/**", ".git/**"]` to skip dictionary self-checks and git object files. Both dictionary definitions set `addWords: true`.
|
|
27
|
+
- `gitignoreRoot: ["."]` pins the `.gitignore` search to the project root. Without it, cspell run from inside a linked worktree under `.claude/worktrees/` walks up into the parent repo's `.gitignore`, resolves every worktree file as living under the ignored worktree path, and checks zero files. New words then pass locally and fail in CI. `gitignoreRoot` stops the walk at the root while the worktree's own `.gitignore` still excludes `node_modules` and build output.
|
|
28
|
+
- Dictionary files in `.cspell/`: `project-terms.txt`, `tech-stack.txt`.
|
|
29
|
+
- Include dotfolders in the spell glob: `cspell '**' '.*/**' '.*' ...`. The default `**` skips dot-prefixed folders, so `.claude/`, `.github/`, and `.husky/` go unchecked without explicit globs.
|
|
30
|
+
- Keep dictionary entries sorted alphabetically, one word per line.
|
|
31
|
+
|
|
32
|
+
## Shell Tooling
|
|
33
|
+
|
|
34
|
+
- Format: `shfmt --indent 2 scripts/`. shfmt supports directory args natively, no `find` needed.
|
|
35
|
+
- Lint: `find scripts -name '*.sh' -exec shellcheck --severity=warning {} +`. shellcheck has no directory mode, `find` is required.
|
|
36
|
+
- Config: `.shellcheckrc` with `external-sources=true`. Required for shellcheck to follow `source` directives. Keep even with EditorConfig present.
|
|
37
|
+
- All shell scripts live in `scripts/`. Do not place `.sh` files outside `scripts/`.
|
|
38
|
+
- EditorConfig: `.editorconfig` at root with `[*.sh]` block enforcing `indent_style = space`, `indent_size = 2`. Prevents editor/shfmt conflicts that produce spurious git diffs.
|
|
39
|
+
|
|
40
|
+
## Commit Lint
|
|
41
|
+
|
|
42
|
+
- Config: `commitlint.config.js` (ESM default export).
|
|
43
|
+
- Extends: `@commitlint/config-conventional`.
|
|
44
|
+
- Rules: `header-max-length: 72`, `scope-case: lower-case`, `subject-full-stop: never`, `subject-case: disabled`.
|
|
45
|
+
- Format: `<type>(<scope>): <subject>` (imperative mood, no trailing period).
|
|
46
|
+
|
|
47
|
+
## Husky + Lint-Staged
|
|
48
|
+
|
|
49
|
+
- `.lintstagedrc` is a user-owned seed at root. Sync drops it once on first install and never overwrites it. Projects extend it with extra glob → command entries (e.g. `aitk indexes regen`).
|
|
50
|
+
- Seeded baseline globs:
|
|
51
|
+
- `**/*.{json,md,mdc}` → `["prettier --write --ignore-path .gitignore --ignore-path .prettierignore", "cspell --no-must-find-files"]`
|
|
52
|
+
- `**/*.md` → `["aitk indexes regen"]`
|
|
53
|
+
- `**/*.sh` → `["shfmt --write --indent 2", "shellcheck --severity=warning"]`
|
|
54
|
+
- Hooks in `.husky/`:
|
|
55
|
+
- `pre-commit` → `bunx lint-staged`
|
|
56
|
+
- `commit-msg` → `bunx commitlint --edit "$1"`
|
|
57
|
+
- `pre-push` → `bun run check`
|
|
58
|
+
- `post-merge` → names `.claude/tasks/` archive candidates, silent otherwise and when the board is absent
|
|
59
|
+
- `post-rewrite` → delegates to `post-merge` on `rebase`, so a `pull.rebase=true` machine still gets the check
|
|
60
|
+
- Husky runs hooks as `sh -e`, so a hook carrying logic is POSIX sh under errexit no matter what its shebang says.
|
|
61
|
+
- Note: lint-staged handles its own glob expansion and passes matched files as arguments. `**/*.sh` is safe here, unlike in package.json scripts.
|
|
62
|
+
|
|
63
|
+
## GitHub
|
|
64
|
+
|
|
65
|
+
- PR template: `.github/pull_request_template.md`.
|
|
66
|
+
- Sections: `## Summary`, `## Key Changes`, `## Technical Context`, `## Testing`.
|
|
67
|
+
- Visuals: HTML comment only, never a visible section header.
|
|
68
|
+
- Imperative mood, no "This PR" opener, no buzzwords, name specific files and functions.
|
|
69
|
+
- CI workflow: `.github/workflows/verify.yml`. Runs on pull requests targeting `main` and on `workflow_dispatch`.
|
|
70
|
+
- Workflow steps: checkout, setup Bun (latest), `bun install --frozen-lockfile`, install `shfmt` and `shellcheck` via apt, then `check:format`, `check:spell`, `check:shell`.
|
|
71
|
+
- Does not run `format` before asserting. CI asserts only. Format must be clean before push.
|
|
72
|
+
|
|
73
|
+
## Gitignore
|
|
74
|
+
|
|
75
|
+
- `# System`: `.DS_Store`
|
|
76
|
+
- `# Dependencies`: `node_modules/`
|
|
77
|
+
- `# Secrets`: `.env`, `.env.*`, `*.local`, `!.env.example`
|
|
78
|
+
|
|
79
|
+
## Scripts
|
|
80
|
+
|
|
81
|
+
- Entry: `scripts/` directory with `verify.sh`, `clean.sh`, `update.sh`.
|
|
82
|
+
- All scripts use logging functions from the bash script reference.
|
|
83
|
+
- `verify.sh`: self-healing: runs `format` first to auto-fix AI-generated or drifted code, then asserts with `check:format`. Supports `VERIFY_NESTED=true` to suppress timeline boundaries when called by other scripts.
|
|
84
|
+
- `clean.sh`: removes `node_modules/`, clears bun cache, reinstalls dependencies fresh.
|
|
85
|
+
- `update.sh`: runs `bun update --interactive` then calls `verify.sh` with `VERIFY_NESTED=true` to confirm project health after updates.
|
|
86
|
+
|
|
87
|
+
## EditorConfig
|
|
88
|
+
|
|
89
|
+
- Config: `.editorconfig` at root, `root = true`.
|
|
90
|
+
- `[*.sh]`: `indent_style = space`, `indent_size = 2`.
|
|
91
|
+
- Ensures consistent shell script indentation across editors, preventing shfmt vs editor conflicts that produce spurious git diffs.
|
|
92
|
+
|
|
93
|
+
## VS Code
|
|
94
|
+
|
|
95
|
+
- Extensions: `esbenp.prettier-vscode`, `streetsidesoftware.code-spell-checker`, `mkhl.shfmt`, `timonwong.shellcheck`, `mads-hartmann.bash-ide-vscode`.
|
|
96
|
+
- Settings: `shellcheck.customArgs: ["--severity=warning"]`.
|
|
97
|
+
|
|
98
|
+
## Context
|
|
99
|
+
|
|
100
|
+
- Seeded at `.claude/context/development.md` and `.claude/context/ci.md` on install. User-owned, never overwritten by sync.
|
|
101
|
+
- Each carries `title` and `description` frontmatter so the files slot into `.claude/context/index.md` if the project adopts the `indexes` system. Indexes stay opt-in.
|
|
102
|
+
- Extend freely with project-specific commands, workflows, or deploy steps. Canonical rationale stays in this reference.
|
|
103
|
+
- The `.claude/context/` location matches the three-tier context model: project-wide invariants in `CLAUDE.md` and `.claude/REQUIREMENTS.md`/`.claude/ARCHITECTURE.md`, path-scoped rules in `.claude/rules/`, and on-demand domain narrative in `.claude/context/`.
|
|
104
|
+
|
|
105
|
+
## Package Scripts
|
|
106
|
+
|
|
107
|
+
- `check:spell`: runs cspell across all files, shows context on failures.
|
|
108
|
+
- `check:format`: checks prettier and shfmt formatting without writing. shfmt targets `scripts/` directory directly. Uses `--log-level warn` and both `--ignore-path .gitignore --ignore-path .prettierignore`.
|
|
109
|
+
- `check:shell`: runs shellcheck at warning severity via `find scripts -name '*.sh'` (shellcheck has no directory mode).
|
|
110
|
+
- `format`: writes prettier and shfmt formatting in place. shfmt targets `scripts/` directory directly. Uses `--log-level warn` and both `--ignore-path .gitignore --ignore-path .prettierignore`.
|
|
111
|
+
- `prepare`: initializes husky hooks (runs automatically on `bun install`).
|
|
112
|
+
- `check`: runs `scripts/verify.sh`, the full verification suite. Auto-formats before asserting.
|
|
113
|
+
- `clean`: runs `scripts/clean.sh`, wipes and reinstalls dependencies.
|
|
114
|
+
- `update`: runs `scripts/update.sh`, interactive dependency update with verification.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: CI
|
|
3
|
+
description: GitHub Actions workflow triggers and checks
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CI
|
|
7
|
+
|
|
8
|
+
GitHub Actions workflow for this project.
|
|
9
|
+
|
|
10
|
+
## Triggers
|
|
11
|
+
|
|
12
|
+
- Pull requests targeting `main`
|
|
13
|
+
- `workflow_dispatch` (manual run from the Actions tab)
|
|
14
|
+
|
|
15
|
+
## Checks
|
|
16
|
+
|
|
17
|
+
Defined in `.github/workflows/verify.yml`. All jobs must pass before merge.
|
|
18
|
+
|
|
19
|
+
| Check | Command | What it asserts |
|
|
20
|
+
| ------ | ---------------------- | ---------------------------------- |
|
|
21
|
+
| Format | `bun run check:format` | prettier and shfmt are clean |
|
|
22
|
+
| Spell | `bun run check:spell` | cspell passes against dictionaries |
|
|
23
|
+
| Shell | `bun run check:shell` | shellcheck passes at warning level |
|
|
24
|
+
|
|
25
|
+
## Running CI locally
|
|
26
|
+
|
|
27
|
+
`bun run check` runs the same three asserts plus auto-formats first. If CI fails on format, run `bun run check` locally and commit the diff.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Development
|
|
3
|
+
description: Local dev workflow, scripts, and husky hooks
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Development
|
|
7
|
+
|
|
8
|
+
Local dev workflow for this project.
|
|
9
|
+
|
|
10
|
+
## Setup
|
|
11
|
+
|
|
12
|
+
- Install [Bun](https://bun.sh): `curl -fsSL https://bun.sh/install | bash`
|
|
13
|
+
- Install dependencies: `bun install`
|
|
14
|
+
|
|
15
|
+
## Scripts
|
|
16
|
+
|
|
17
|
+
| Command | Purpose |
|
|
18
|
+
| ---------------- | ---------------------------------------------------- |
|
|
19
|
+
| `bun run check` | Full verification. Auto-formats, then asserts clean. |
|
|
20
|
+
| `bun run format` | Auto-fix prettier and shfmt formatting. |
|
|
21
|
+
| `bun run clean` | Wipe `node_modules/`, clear bun cache, reinstall. |
|
|
22
|
+
| `bun run update` | Interactive `bun update` followed by verification. |
|
|
23
|
+
|
|
24
|
+
## Shell scripts
|
|
25
|
+
|
|
26
|
+
All `.sh` files live under `scripts/`. Do not place shell scripts outside `scripts/`.
|
|
27
|
+
|
|
28
|
+
## Husky hooks
|
|
29
|
+
|
|
30
|
+
- `pre-commit` runs `lint-staged` (prettier, cspell, shfmt, shellcheck on staged files).
|
|
31
|
+
- `commit-msg` runs `commitlint` against the conventional commit format.
|
|
32
|
+
- `pre-push` runs `bun run check`. After pushing, run `git status`. If files changed, commit the diff as `style(<scope>):` and push again.
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.2",
|
|
3
|
+
"language": "en",
|
|
4
|
+
"useGitignore": true,
|
|
5
|
+
"gitignoreRoot": ["."],
|
|
6
|
+
"dictionaryDefinitions": [
|
|
7
|
+
{
|
|
8
|
+
"name": "project-terms",
|
|
9
|
+
"path": ".cspell/project-terms.txt",
|
|
10
|
+
"addWords": true
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "tech-stack",
|
|
14
|
+
"path": ".cspell/tech-stack.txt",
|
|
15
|
+
"addWords": true
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"dictionaries": ["project-terms", "tech-stack"],
|
|
19
|
+
"ignorePaths": [".cspell/**", ".git/**"]
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Consumed only by `aitk claude init`. Claude is not a discoverable tooling stack
|
|
2
|
+
# and is excluded from `aitk tooling` discovery via scripts/lib/tooling.sh.
|
|
3
|
+
|
|
4
|
+
[stack]
|
|
5
|
+
name = "claude"
|
|
6
|
+
extends = ""
|
|
7
|
+
runtime = ""
|
|
8
|
+
scaffold = ""
|
|
9
|
+
|
|
10
|
+
[gitignore]
|
|
11
|
+
"# Claude" = [".claude/.tmp/", ".claude/memory/", ".claude/plans/", ".claude/review/", ".claude/worktrees/", ".claude/tasks/"]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Tooling Claude reference
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The claude stack installs the `.claude/` workflow directory into a project. State docs are seeds, written once and never overwritten by tooling. `CLAUDE.md` is a seed, filled in per project after init.
|
|
6
|
+
|
|
7
|
+
## Structure
|
|
8
|
+
|
|
9
|
+
```plaintext
|
|
10
|
+
.claude/
|
|
11
|
+
├── CLAUDE.md ← seeded. Project context and rules, auto-loaded by Claude Code each session
|
|
12
|
+
├── tasks/ ← seeded then gitignored. One file per task plus a generated index.md, local scratch only
|
|
13
|
+
├── REQUIREMENTS.md ← seeded. Project goals, non-goals, MVP scope
|
|
14
|
+
├── ARCHITECTURE.md ← seeded. Technical design decisions and open questions
|
|
15
|
+
├── DESIGN.md ← seeded. Visual intent and the decisions behind it
|
|
16
|
+
├── wireframes/ ← seeded. Per-surface ASCII layouts. `index.md` is the discovery anchor; `<surface>.md` files hold the sketches and behavior bullets.
|
|
17
|
+
├── GOV.md ← retired. Removed by `aitk gov sync` if present from a prior install
|
|
18
|
+
├── settings.json ← seeded. Project-level Claude Code config (PreToolUse and PostToolUse hooks). User-level config installed separately via `aitk claude setup`.
|
|
19
|
+
├── plans/ ← execution detail for multi-step tasks, gitignored. `feature-*.md` entries swept by claude-docs.
|
|
20
|
+
├── review/ ← scratch for claude-review and claude-ui-test output, gitignored
|
|
21
|
+
├── .tmp/ ← ephemeral scratch space, gitignored
|
|
22
|
+
└── memory/ ← session memory files, gitignored
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Upgrading from a single-file board
|
|
26
|
+
|
|
27
|
+
A project installed before the board became a folder still holds `.claude/TASKS.md`. Nothing migrates it. `aitk claude init` seeds an empty `.claude/tasks/index.md` beside it and leaves the old file untouched, so every skill reads the empty catalog while the real board sits unreferenced.
|
|
28
|
+
|
|
29
|
+
Convert by hand, once per project:
|
|
30
|
+
|
|
31
|
+
1. Split each `###` block into `.claude/tasks/vXX.Y-<slug>.md`, adding the `title` and `description` frontmatter that `.claude/standards/tasks.md` requires. Compare each new file against the block it came from rather than checking that every block landed somewhere.
|
|
32
|
+
2. Run `aitk indexes regen --no-stage --root . .claude/tasks/<any-task>.md` to build the catalog.
|
|
33
|
+
3. Delete `.claude/TASKS.md`, and swap its `.gitignore` entry for `.claude/tasks/`.
|
|
34
|
+
|
|
35
|
+
## Gitignore
|
|
36
|
+
|
|
37
|
+
- `# Claude`: `.claude/.tmp/`, `.claude/memory/`, `.claude/plans/`, `.claude/review/`, `.claude/worktrees/`, `.claude/tasks/`
|
|
38
|
+
|
|
39
|
+
## CLI
|
|
40
|
+
|
|
41
|
+
| Command | What it does |
|
|
42
|
+
| ------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
43
|
+
| `aitk claude init` | Seeds `.claude/` workflow docs, updates `.gitignore` |
|
|
44
|
+
| `aitk claude sync` | Reconciles `.gitignore` against the manifest. Reports seeded file status. |
|
|
45
|
+
| `aitk claude setup` | Installs user-level config to `~/.claude/`: statusline, attribution, and permission allows or denies. Run once per machine. |
|
|
46
|
+
|
|
47
|
+
## CLAUDE.md
|
|
48
|
+
|
|
49
|
+
- Ships as a seed with placeholder project name, description, and key paths. Fill these in after init.
|
|
50
|
+
- Section layout: `Context`, `Indexes`, `Markdown`, `Key paths`, `Spelling`, `Snippets`, `Tasks`, `Memory`. Each section groups rules that share a surface so skills can detect, extend, or skip by heading.
|
|
51
|
+
- The memory rules favor signal over volume. Saving only after a second occurrence or an explicit user correction keeps entries focused on patterns worth preventing, not first-occurrence slips. The 3-line cap stops the built-in auto-memory from drifting into narrative writeups that bury the rule underneath the recovery story.
|
|
52
|
+
- The `Context` section points at `.claude/` state docs one line. `claude-feature` does the parallel read when invoked. The seed intentionally does not re-list every file.
|
|
53
|
+
|
|
54
|
+
## Seed docs
|
|
55
|
+
|
|
56
|
+
- Seed docs ship with a guidelines preamble above the first H2. These are instructions Claude internalizes before filling in the sections below. They are not sections to populate.
|
|
57
|
+
|
|
58
|
+
## settings.json
|
|
59
|
+
|
|
60
|
+
- Project seed at `tooling/claude/seeds/.claude/settings.json` ships two PreToolUse hooks (pairing with `.claude/hooks/index-reminder.sh` and `.claude/hooks/scratch-guard.sh`) and a PostToolUse hook (pairs with `.claude/hooks/standards-audit.sh`). Project settings layer over user settings, so per-project files only carry what is genuinely project-specific.
|
|
61
|
+
- User-level template at `tooling/claude/user/settings.template.json` carries `attribution.commit` and `attribution.pr` (empty strings to suppress co-author tags), `permissions.allow` with `Bash(bun run *)`, and `permissions.deny` with `Read(**/.env)` and `Read(**/.env.*)` to block accidental secret exposure across any project. Installed once per machine via `aitk claude setup`.
|
|
62
|
+
- The deprecated `includeCoAuthoredBy` key is not used.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Design
|
|
2
|
+
|
|
3
|
+
Authoring guidance: `.claude/standards/design.md`.
|
|
4
|
+
|
|
5
|
+
## Personality
|
|
6
|
+
|
|
7
|
+
One paragraph. Voice, tone, and the feeling a user should have. The same content a design intake form asks for.
|
|
8
|
+
|
|
9
|
+
## Color
|
|
10
|
+
|
|
11
|
+
One row per role. Intent is a short phrase a human can picture. Value is a hex or a named system token.
|
|
12
|
+
|
|
13
|
+
| Role | Intent | Value |
|
|
14
|
+
| ---------- | ----------------------------- | ----- |
|
|
15
|
+
| background | page canvas | |
|
|
16
|
+
| surface | cards, panels, raised blocks | |
|
|
17
|
+
| text | primary body text | |
|
|
18
|
+
| muted | secondary text, captions | |
|
|
19
|
+
| accent | links, primary action | |
|
|
20
|
+
| success | confirmations, positive state | |
|
|
21
|
+
| warning | cautions, pending state | |
|
|
22
|
+
| error | failures, destructive action | |
|
|
23
|
+
|
|
24
|
+
## Typography
|
|
25
|
+
|
|
26
|
+
One row per role. Size and line height in pixels or rem. Family names use their product casing.
|
|
27
|
+
|
|
28
|
+
| Role | Family | Weight | Size | Line height |
|
|
29
|
+
| ------- | ------ | ------ | ---- | ----------- |
|
|
30
|
+
| display | | | | |
|
|
31
|
+
| heading | | | | |
|
|
32
|
+
| body | | | | |
|
|
33
|
+
| label | | | | |
|
|
34
|
+
| code | | | | |
|
|
35
|
+
|
|
36
|
+
## Spacing
|
|
37
|
+
|
|
38
|
+
Base unit and scale. The renderer draws a swatch per step.
|
|
39
|
+
|
|
40
|
+
| Step | Multiplier | Value |
|
|
41
|
+
| ---- | ---------- | ----- |
|
|
42
|
+
| xs | 0.5 | |
|
|
43
|
+
| sm | 1 | |
|
|
44
|
+
| md | 2 | |
|
|
45
|
+
| lg | 3 | |
|
|
46
|
+
| xl | 5 | |
|
|
47
|
+
|
|
48
|
+
## Borders
|
|
49
|
+
|
|
50
|
+
| Role | Radius | Width | When used |
|
|
51
|
+
| ------- | ------ | ----- | --------------------- |
|
|
52
|
+
| default | | | cards, inputs |
|
|
53
|
+
| pill | | | tags, status chips |
|
|
54
|
+
| none | 0 | 0 | edge-to-edge surfaces |
|
|
55
|
+
|
|
56
|
+
## Motion
|
|
57
|
+
|
|
58
|
+
One line. State whether motion is used at all, and if so, the default duration and easing.
|
|
59
|
+
|
|
60
|
+
## Iconography
|
|
61
|
+
|
|
62
|
+
One line. Style (outline, filled, duotone), source library, and whether custom icons are allowed.
|