@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,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: AI workflow
|
|
3
|
+
description: Overarching AI workflow across domains
|
|
4
|
+
category: Agent surface
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# AI workflow reference
|
|
8
|
+
|
|
9
|
+
A concise reference for when to reach for which tool, organized by what you're trying to do.
|
|
10
|
+
|
|
11
|
+
> **Mental model:** Claude Code for everything: planning, implementation, review, docs, git, and release.
|
|
12
|
+
|
|
13
|
+
## Documents
|
|
14
|
+
|
|
15
|
+
Project docs live in `.claude/` at the project root.
|
|
16
|
+
|
|
17
|
+
```plaintext
|
|
18
|
+
.claude/
|
|
19
|
+
├── REQUIREMENTS.md ← goals, non-goals, MVP scope
|
|
20
|
+
├── ARCHITECTURE.md ← technical design decisions
|
|
21
|
+
├── DESIGN.md ← visual intent and token decisions (UI projects)
|
|
22
|
+
├── WIREFRAMES.md ← ASCII wireframes: layout, UI copy, and interaction rules (UI projects)
|
|
23
|
+
├── tasks/ ← one file per task with a generated index.md, gitignored local scratch
|
|
24
|
+
├── context/ ← per-domain narrative loaded on demand via index.md
|
|
25
|
+
└── rules/ ← path-scoped governance rules, written by aitk gov install
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Three tiers of context load with different cost: always-loaded (root `CLAUDE.md`, `.claude/REQUIREMENTS.md`, `.claude/ARCHITECTURE.md`), path-scoped lazy (`.claude/rules/<scope>.md` with `paths:` glob), and on-demand lookup (`.claude/context/<domain>.md` discovered via `.claude/context/index.md`). See [the context model](../.claude/context/context-model.md) for the full picture.
|
|
29
|
+
|
|
30
|
+
Run `aitk init` to seed the `.claude/` directory, a root `CLAUDE.md` file, and `.claude/rules/` in one pass. `aitk init` chains claude init and governance install. Claude Code auto-loads every file in `.claude/rules/` at session start, applying always-on rules unconditionally and path-scoped rules to files matching their `paths:` glob.
|
|
31
|
+
|
|
32
|
+
## Scenarios
|
|
33
|
+
|
|
34
|
+
### Bootstrap a new project
|
|
35
|
+
|
|
36
|
+
See [target projects](target-projects.md) for the scaffold decision, core domains and skips, and the full lifecycle across scaffold, add-a-domain-later, and upstream sync.
|
|
37
|
+
|
|
38
|
+
### New feature
|
|
39
|
+
|
|
40
|
+
One session works for most features. Prefer splitting across two sessions only when the feature is large enough that you want a cold, independent reviewer on the diff. Plan and implement in session 1, then review and ship in session 2.
|
|
41
|
+
|
|
42
|
+
#### Session 1
|
|
43
|
+
|
|
44
|
+
Work in Claude Code directly. It reads `CLAUDE.md` automatically and has full file access, no pasting needed.
|
|
45
|
+
|
|
46
|
+
- When the current state is unmeasured and more than one approach is live, invoke `aitk:claude-groundwork` first. It opens a scratch folder under `.claude/.tmp/groundwork/<slug>/` and ends in a decision, which may be to do nothing. Skip it when the approach is already settled. A track may run experiments to settle a question, writing a fixture it reads itself under `.claude/.tmp/groundwork-fixtures/<slug>/` and spawning up to three billed headless runs before it asks. A fixture a headless run is pointed at sits outside the repository, since a session started under the project root inherits that project's `CLAUDE.md` and rules and would measure them instead of the arm.
|
|
47
|
+
- Invoke `aitk:claude-feature` to scan for code-level conflicts and ambiguities, confirm approach before proceeding
|
|
48
|
+
- Implement the feature, then Claude Code runs the commands defined in `CLAUDE.md`, fixes failures, and iterates until all pass
|
|
49
|
+
- For UI changes, invoke `aitk:claude-ui-test` to generate and run Playwright e2e tests
|
|
50
|
+
End the session once the feature works and tests pass. Invoke `aitk:claude-docs` to capture any decisions made during implementation before closing.
|
|
51
|
+
|
|
52
|
+
#### Session 2
|
|
53
|
+
|
|
54
|
+
Start a fresh Claude Code session. The diff is sufficient context for both review and ship.
|
|
55
|
+
|
|
56
|
+
- Invoke `aitk:claude-review` to review all changes since main and output a findings report
|
|
57
|
+
- Fix any valid findings
|
|
58
|
+
- Invoke `aitk:git-ship` to sync docs, commit by concern, rename branch, and open PR
|
|
59
|
+
|
|
60
|
+
### Parallel features
|
|
61
|
+
|
|
62
|
+
When features are independent, run them in parallel instead of sequentially. Use one git worktree per feature so each session has its own working tree and branch.
|
|
63
|
+
|
|
64
|
+
- Create a worktree per feature, then start a Claude Code session in each
|
|
65
|
+
- Invoke `aitk:claude-feature` in each session. Plans land at the main worktree root as `.claude/plans/feature-<slug>.md`, one per feature, no collisions. Small features stay in chat and skip the file.
|
|
66
|
+
- Implement, verify, and review each feature independently. `claude-review` and `claude-ui-test` write per-branch files at the main worktree root (`review-<branch>.md`, `ui-checklist-<branch>.md`), so parallel sessions do not overwrite each other
|
|
67
|
+
- Ship each worktree separately with `aitk:git-ship`
|
|
68
|
+
- For full autonomy per worktree, invoke `aitk:claude-autoship` instead of the manual chain. Approve the plan, walk away, come back to draft PRs.
|
|
69
|
+
|
|
70
|
+
To run several worktrees as a coordinated flow rather than ad hoc, assert the orchestrator role in one warm session with `aitk:claude-orchestrate`. It owns the roadmap via `aitk:claude-roadmap`, plans each feature, refills the ready queue so a free worker never waits, and reviews each worker's PR with `aitk:claude-pr-review`, while workers address the posted findings with `aitk:claude-address-review`. The human launches workers and merges. See [operating model](operating-model.md) for the full loop.
|
|
71
|
+
|
|
72
|
+
Roadmap ownership holds while a scope exists to sequence. Once the MVP list in `.claude/REQUIREMENTS.md` has shipped, later work arrives as discrete items and the orchestrator reads `.claude/tasks/priority.md` for execution order instead.
|
|
73
|
+
|
|
74
|
+
Run one orchestrator at a time. The board is gitignored, so a second session reads none of the first one's writes and the two collide on labels and archives. No fixed number caps the worker tracks underneath it. Collision between file sets is what binds, so a candidate opens only when its files are disjoint from every track in flight, and the ceiling in practice is how many outputs one session can still review properly.
|
|
75
|
+
|
|
76
|
+
Before a handoff, the orchestrator checks the plan against the tree rather than reading it: grep each construct it names and count the sites, confirm every phase label it cites is still open, and open each file it describes. A plan goes stale from whatever merged after it was written, and reading cannot catch that.
|
|
77
|
+
|
|
78
|
+
`.claude/plans/`, `.claude/review/`, and `.claude/memory/` all resolve at the main worktree root, so artifacts created in any session are visible from any sibling worktree. See [Claude Code and git worktrees](../wiki/claude-worktrees.md) for the full rule and the domain-level fan-out guidance.
|
|
79
|
+
|
|
80
|
+
A plan that ships is archived, never deleted. `aitk:claude-docs` moves it to `.claude/.tmp/plans-archive/` and retargets the task file's `Plan:` line at the new location, so a completed task still leads to the reasoning behind it. Both folders are gitignored, which is why a deleted plan had no recovery path. A plan cited by more than one task stays put until the last of them closes, since moving it early would strand every other pointer.
|
|
81
|
+
|
|
82
|
+
The sweep reads the whole board rather than the tasks the session touched. It is the one place the skill reaches past its own rule against editing a task file the session did not change, because a task that closed while an earlier run missed its archive is exactly what the sweep exists to clear. Reaching it is safe: the archive moves the plan and retargets the pointer in the same pass, so an untouched task ends up with a working link rather than a broken one.
|
|
83
|
+
|
|
84
|
+
`aitk:claude-docs` decides which task closed by reading the diff rather than the conversation. It resolves a merge base against `origin/main`, unions the committed diff with the working tree and untracked files, then matches unchecked outcomes on the board against what shipped. A task that shipped without ever being discussed still gets marked. Requirements, architecture, and design stay session-sourced, because a diff cannot carry a judgment.
|
|
85
|
+
|
|
86
|
+
`.claude/tasks/` is gitignored and resolves at the main worktree root, so every session shares one board. One file per task is what keeps concurrent sessions from overwriting each other, since a gitignored board has no history to recover a lost write from. Its `index.md` is generated by a hook rather than by `bun run check`, because the whole-repo index walk skips gitignored folders. A hand-maintained `priority.md` sits beside it carrying execution order and what each task is waiting on, which the alphabetical index cannot express.
|
|
87
|
+
|
|
88
|
+
`aitk:claude-tasks` owns the two operations that bracket a task's life. It creates the file, holding the filename convention and the frontmatter contract so a malformed write cannot break the index for every sibling, and it moves a shipped task to `.claude/.tmp/task-archive/`. Creation is where the origin invariant is enforced: every task names a plan, a groundwork folder, or an issue, since a task with no origin is either lost context or work nobody decided to do. Archiving a task leaves its plan alone, because `aitk:claude-docs` owns the plans sweep and already holds the last-live-citation rule. That makes the order load-bearing, so the archive verb refuses to run while the `Plan:` line still points into `.claude/plans/`. The sweep only reaches tasks still in the live folder, and archiving the task first would strand the plan there with nothing citing it.
|
|
89
|
+
|
|
90
|
+
Nothing chained that archive until the `post-merge` git hook landed. Every earlier step fires from `aitk:claude-autoship` or `aitk:git-ship`, both of which finish while the pull request is still open, so a task archived there would close for work that may be abandoned. The board is gitignored, which rules out reading it from anywhere but the machine that pulled. The hook names the board's archive candidates and stays silent otherwise, including on a project with no board.
|
|
91
|
+
|
|
92
|
+
Candidates rather than closed tasks, because outcomes are marked on the branch. A task can read all `[x]` while its pull request is still open, so `aitk:claude-tasks` confirms the work reached `main` before it moves anything, and the hook's own output says that check is still owed. A companion `post-rewrite` hook carries the same announcement for anyone pulling with rebase, which fires that event instead of `post-merge`.
|
|
93
|
+
|
|
94
|
+
It announces and moves nothing, so `aitk:claude-tasks` stays the only writer. A shell-side archive would change a gitignored board with no diff to review and no session watching, and `index.md` regenerates from a session hook that a shell `mv` never fires. Both hooks ship with the `base` tooling stack, so a target project running this workflow gets the same trigger.
|
|
95
|
+
|
|
96
|
+
### Autonomous ship
|
|
97
|
+
|
|
98
|
+
For features on a mature stack, chain the post-plan pipeline in one session. Approve the plan, invoke `aitk:claude-autoship`, and the skill runs implement → verify → review → ship sequentially.
|
|
99
|
+
|
|
100
|
+
- Use when the plan is tight and the stack has real verify commands and test coverage
|
|
101
|
+
- Autoship stops on: verify failure after one fix attempt, UI manual checklist non-empty, any review finding above minor, no diff baseline resolving against `main`, an empty changed-file list, or hook failure
|
|
102
|
+
- Review is skipped entirely when the diff is prose-only (every changed file matches `*.md` or `*.txt`). Prose changes are gated by `docs-sync`, `claude-standards-audit`, and pre-push hooks.
|
|
103
|
+
- An empty changed-file list stops the chain rather than counting as prose-only. The filename test passes vacuously on an empty set, which routed a branch past review instead of through it.
|
|
104
|
+
- Every stop leaves recoverable state. Fix and resume with `/git-ship`
|
|
105
|
+
- Skip autoship for auth, migrations, security-sensitive changes, or work where the plan itself is uncertain
|
|
106
|
+
- After the PR is open, both `autoship` and `git-ship` invoke `claude-memory-capture` to write session patterns into `.claude/memory/`. If capture wrote at least one entry, `claude-memory-review` then proposes a decision-ready fix scoped to those captures while context is fresh, otherwise it is skipped. They stop at Propose. Review the receipt and run Apply yourself, on its own commit separate from the feature. Run `claude-memory-review` standalone to curate the whole pen.
|
|
107
|
+
|
|
108
|
+
### UI polish
|
|
109
|
+
|
|
110
|
+
Verify the change manually in the browser. Invoke `aitk:claude-ui-test` if you need e2e tests and a visual verification checklist for the session. For the fix itself, describe the change in Claude Code directly.
|
|
111
|
+
|
|
112
|
+
### Quick fix
|
|
113
|
+
|
|
114
|
+
- Verify failure or isolated bug → continue in Claude Code (it has the implementation context)
|
|
115
|
+
- Design or planning conflict → escalate to a new Claude chat session with the relevant plan context
|
|
116
|
+
- Fast file edit (a task file, config, renaming) → Claude Code directly, no chat needed
|
|
117
|
+
|
|
118
|
+
### Review
|
|
119
|
+
|
|
120
|
+
Invoke `aitk:claude-review` at the start of session 2. It reads all changed files and outputs a findings report. Fix valid findings before invoking `aitk:git-ship`. If nothing is valid, skip directly to ship.
|
|
121
|
+
|
|
122
|
+
### UI-heavy project
|
|
123
|
+
|
|
124
|
+
Before the first feature session on a UI-heavy project, pick a design tier. The tier determines seed shape, installed MCP servers, and installed plugin skills. See [visual design workflow](visual-design-workflow.md) for the framework and decision guide.
|
|
125
|
+
|
|
126
|
+
## Skills
|
|
127
|
+
|
|
128
|
+
| Skill | When to use |
|
|
129
|
+
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
130
|
+
| `aitk:claude-groundwork` | Before a plan is warranted, measure an unknown in a scratch folder under `.claude/.tmp/groundwork/` |
|
|
131
|
+
| `aitk:claude-feature` | Before implementation, scan for conflicts and ambiguities |
|
|
132
|
+
| `aitk:claude-roadmap` | Sequence MVP scope into ordered versions in `.claude/ROADMAP.md` |
|
|
133
|
+
| `aitk:claude-orchestrate` | Assert the orchestrator role, refill the ready queue, and dispatch the roadmap, feature, and review skills |
|
|
134
|
+
| `aitk:claude-diagram` | Draft `.claude/DIAGRAMS.md` with mermaid diagrams from architecture and code, then verify each rendered image |
|
|
135
|
+
| `aitk:claude-design-propose` | Day one on a UI project, draft `.claude/DESIGN.md` from requirements. Use `claude-design-extract` if UI already exists |
|
|
136
|
+
| `aitk:claude-review` | In a fresh session, review all changes since main |
|
|
137
|
+
| `aitk:claude-pr-review` | Review an open PR from an independent session, then close the review out against the commits added since |
|
|
138
|
+
| `aitk:claude-address-review` | Address PR findings and CI status, refresh stale docs, then push a follow-up |
|
|
139
|
+
| `aitk:claude-tasks` | Add a task to `.claude/tasks/` or archive a shipped one out of the folder |
|
|
140
|
+
| `aitk:claude-docs` | When decisions diverged from plan, update `.claude/` docs |
|
|
141
|
+
| `aitk:claude-ui-test` | After UI changes, generate and run e2e tests + visual checklist |
|
|
142
|
+
| `aitk:claude-ux-audit` | Audit existing UI surfaces for missing states, edge cases, inconsistencies |
|
|
143
|
+
| `aitk:claude-autoship` | After plan approval, chain implement → verify → review → draft PR |
|
|
144
|
+
| `aitk:systematic-debugging` | When a test fails or bug surfaces, enforce root-cause investigation before fixes |
|
|
145
|
+
| `aitk:git-ship` | Post-feature: sync docs, commit, rename branch, open PR |
|
|
146
|
+
|
|
147
|
+
## Feedback routing
|
|
148
|
+
|
|
149
|
+
```plaintext
|
|
150
|
+
verify fails → Session 1 (it has implementation context)
|
|
151
|
+
design fails → new Claude chat session (planning problem)
|
|
152
|
+
review finds → Session 2 (fix alongside review, before ship)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Snippets
|
|
156
|
+
|
|
157
|
+
For the full list of snippets that complement this workflow, see `.claude/context/snippets.md`.
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Docs
|
|
3
|
+
subtitle: One-line reference for each doc in this folder.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Docs
|
|
7
|
+
|
|
8
|
+
One-line reference for each doc in this folder.
|
|
9
|
+
|
|
10
|
+
## Agent surface
|
|
11
|
+
|
|
12
|
+
- [Agents](agents.md): CLI catalog and invocation rules for agents
|
|
13
|
+
- [AI workflow](ai-workflow.md): Overarching AI workflow across domains
|
|
14
|
+
- [Target projects](target-projects.md): Scaffold, add domains later, and sync upstream drift in a toolkit-managed project
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
- [Operating model](operating-model.md): Orchestrator and worker roles for building across parallel sessions
|
|
19
|
+
- [Visual design workflow](visual-design-workflow.md): Tiered guide for design and wireframe authoring with Claude Code
|
|
20
|
+
- [Zshrc aliases for Claude Code](zshrc-aliases.md): Shell aliases that shorten common Claude Code invocations
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Operating model
|
|
3
|
+
description: Orchestrator and worker roles for building across parallel sessions
|
|
4
|
+
category: Workflow
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Operating model
|
|
8
|
+
|
|
9
|
+
A way to build fast and reliably across parallel Claude Code sessions without a
|
|
10
|
+
loop and without losing the human review gate. One warm session plans and
|
|
11
|
+
reviews. Cold worker sessions build. The human launches workers and merges. This
|
|
12
|
+
page covers the roles and the loop. For the worktree mechanism (isolation, merge
|
|
13
|
+
order, port collisions), see [Claude Code and git worktrees](../wiki/claude-worktrees.md).
|
|
14
|
+
|
|
15
|
+
## Two roles
|
|
16
|
+
|
|
17
|
+
The split is by vantage, not by capability. Both are Claude Code sessions.
|
|
18
|
+
|
|
19
|
+
| Role | Session | Owns | Does not |
|
|
20
|
+
| ------------ | ------------------------------------- | ---------------------------------------------- | ------------------------- |
|
|
21
|
+
| Orchestrator | One warm, long-lived session | Roadmap, planning, deep PR review, merge order | Build features, merge PRs |
|
|
22
|
+
| Worker | One cold worktree session per feature | Implement, self-check, open PR | Question the plan, merge |
|
|
23
|
+
|
|
24
|
+
The orchestrator is worth asserting explicitly at the start of a session with
|
|
25
|
+
`claude-orchestrate`, which loads the loop and its boundaries. It is framing and
|
|
26
|
+
dispatch, not logic.
|
|
27
|
+
|
|
28
|
+
## The loop
|
|
29
|
+
|
|
30
|
+
One feature travels this path end to end.
|
|
31
|
+
|
|
32
|
+
1. Orchestrator drafts or resequences the roadmap with `claude-roadmap`, reading scope from `.claude/REQUIREMENTS.md`. The skill stops when that file carries a later scope section, since the MVP list it sequences has shipped and a fresh requirements pass owns what follows.
|
|
33
|
+
2. Orchestrator plans the next feature with `claude-feature`, writing a plan to `.claude/plans/`. Planning stays in the warm session because good planning is cross-feature. It needs the contract other features consume and the shared wiring seam. A cold session would re-derive or guess.
|
|
34
|
+
3. The human opens a worker worktree with `claude-worktree` and runs `claude-autoship` against the plan. The worker builds, self-checks, opens a PR, and stops at the PR boundary.
|
|
35
|
+
4. Orchestrator reviews the PR with `claude-pr-review` and posts findings to it.
|
|
36
|
+
5. Worker addresses the findings with `claude-address-review`, then pushes a follow-up.
|
|
37
|
+
6. Orchestrator closes the review out with `claude-pr-review` again. The second pass reads only the commits the follow-up added and posts under `## Review closed`, so the thread shows one review ending rather than a second one opening.
|
|
38
|
+
7. The human reads the result and merges. The orchestrator tells any trailing worker to rebase when its branch shares a seam with the merged one.
|
|
39
|
+
|
|
40
|
+
There is no loop construct here. Each worker is a single build that halts at the
|
|
41
|
+
PR. The merge stays a manual human gate. Reliability comes from the plan being
|
|
42
|
+
complete enough that the cold session does not come back with questions, and
|
|
43
|
+
from merging promptly so the next PR does not rot against a moving main.
|
|
44
|
+
|
|
45
|
+
## Two review layers
|
|
46
|
+
|
|
47
|
+
The worker's self-review and the orchestrator's review are not the same pass run
|
|
48
|
+
twice. They differ by vantage.
|
|
49
|
+
|
|
50
|
+
- Worker self-review, inside `claude-autoship`: the session that wrote the code. Its job is "did I build the plan and does it pass?" Mechanical, and structurally blind to its own misreadings, because the same misreading wrote both the code and the review. This is the green gate that decides whether the PR opens.
|
|
51
|
+
- Orchestrator review, via `claude-pr-review`: a fresh session with cross-feature context (the roadmap, a sibling PR in flight, a downstream contract). Its job is "is this right and does it fit?" It can question the plan itself. This is the merge gate.
|
|
52
|
+
|
|
53
|
+
They collide only if the worker also runs a deep pass. Keep the worker's review
|
|
54
|
+
light and let the orchestrator own the deep, independent one. The human read at
|
|
55
|
+
merge is the final gate. No layer repeats another.
|
|
56
|
+
|
|
57
|
+
## The review channel
|
|
58
|
+
|
|
59
|
+
Review travels on the PR, not through chat. `claude-pr-review` posts findings to
|
|
60
|
+
the PR. `claude-address-review` reads them back, fixes each, replies or resolves
|
|
61
|
+
the threads, and pushes a follow-up. `claude-pr-review` then runs a second time
|
|
62
|
+
to close the review out, reading only what the follow-up added.
|
|
63
|
+
|
|
64
|
+
The two passes carry different headings, `## Review` and `## Review closed`, so
|
|
65
|
+
a thread can be scanned for state without opening either comment. The feedback
|
|
66
|
+
becomes a durable artifact both sessions read, survives a session ending, and
|
|
67
|
+
anchors to the change. That removes the copy-paste that otherwise routes review
|
|
68
|
+
through the human between two sessions.
|
|
69
|
+
|
|
70
|
+
## Feature sizing
|
|
71
|
+
|
|
72
|
+
The unit is fixed by the ceremony: one feature is one plan, one worktree, one
|
|
73
|
+
PR, one review sitting. Split a feature down when a backend contract and its
|
|
74
|
+
consumer both change, landing the contract first so no UI is built on a shaky
|
|
75
|
+
contract. Merge a change up into an ordinary edit when it is a few lines with no
|
|
76
|
+
new contract, skipping the plan and worktree entirely. The smell test: if the
|
|
77
|
+
whole change does not fit in your head at review time it was too big, and if the
|
|
78
|
+
coordination costs more than the change it was too small.
|
|
79
|
+
|
|
80
|
+
## Where work comes from
|
|
81
|
+
|
|
82
|
+
Three tiers hold work at different altitudes.
|
|
83
|
+
|
|
84
|
+
- Roadmap (`.claude/ROADMAP.md`): versions as themes, sequenced. Committed, low churn. Shape governed by `standards/bundled/roadmap.md`.
|
|
85
|
+
- Tasks (`.claude/tasks/`): the active few pulled into the current turn, one file each. Gitignored, high churn. Shape governed by `standards/tasks.md`.
|
|
86
|
+
- Edits: a few lines, done immediately with no ceremony.
|
|
87
|
+
|
|
88
|
+
Pre-MVP the roadmap is the backlog, because the scope is finite and known.
|
|
89
|
+
Post-MVP the backlog moves to tracked issues, per item, and the roadmap thins to
|
|
90
|
+
occasional theme-setting.
|
|
91
|
+
|
|
92
|
+
## Parallelism
|
|
93
|
+
|
|
94
|
+
The binding constraint is the human and the shared files, not the roadmap. Cap
|
|
95
|
+
at two or three worker tracks and split them across the stack so they do not
|
|
96
|
+
collide on the same files. Unit checks run freely in many worktrees at once.
|
|
97
|
+
Only fixed-port work (a dev server, an end-to-end run, a screenshot) and
|
|
98
|
+
singleton resources (one local model server, one GPU) serialize. See
|
|
99
|
+
[Claude Code and git worktrees](../wiki/claude-worktrees.md) for merge order and the
|
|
100
|
+
port-collision detail.
|
|
101
|
+
|
|
102
|
+
## Related
|
|
103
|
+
|
|
104
|
+
- [Claude Code and git worktrees](../wiki/claude-worktrees.md) for the isolation and fan-out mechanics
|
|
105
|
+
- [Claude Code subagents](../wiki/claude-subagents.md) for in-session parallelism without worktrees
|
|
106
|
+
- `.claude/context/claude-plugin.md` for how the skills in the loop are categorized
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Target projects
|
|
3
|
+
description: Scaffold, add domains later, and sync upstream drift in a toolkit-managed project
|
|
4
|
+
category: Agent surface
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Target projects
|
|
8
|
+
|
|
9
|
+
How a project outside this repo consumes the toolkit across its lifecycle. Three phases: scaffold once, add a domain later when a new need appears, and sync when the upstream toolkit moves.
|
|
10
|
+
|
|
11
|
+
This doc stays at the narrative layer. For command flags and JSON shapes, see [agents](agents.md). For per-domain mechanics, see each `.claude/context/<domain>.md`.
|
|
12
|
+
|
|
13
|
+
## Getting the skills
|
|
14
|
+
|
|
15
|
+
The skills reach a session through a marketplace install, once per machine. Every session on that machine carries them afterward, and updates arrive on release, so an upstream push does not reach an installed copy.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
claude plugin marketplace add https://github.com/erclx/aitk
|
|
19
|
+
claude plugin install aitk@aitk
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The URL form clones over HTTPS. The `erclx/aitk` shorthand resolves to SSH and fails on a machine with no key configured.
|
|
23
|
+
|
|
24
|
+
The `aitk` CLI is separate. Twenty skills invoke it in a command position, and a marketplace install does not put it on `PATH`, so it installs from the registry as its own step.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
bun install --global @erclx/aitk
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The package ships the catalogs the CLI reads, not only `src/`, so `aitk init` resolves standards, snippets, governance, tooling, and the seeds from wherever the package landed.
|
|
31
|
+
|
|
32
|
+
Pointing Claude Code at a checkout stays the development path, where a local skill edit overrides the installed copy for that session.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
claude --plugin-dir <toolkit>/claude
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Scaffold
|
|
39
|
+
|
|
40
|
+
Two steps, in order:
|
|
41
|
+
|
|
42
|
+
1. Run the framework's own scaffold if the project needs one, such as `bun init`, `npm create vite`, or `npm create astro`. The toolkit does not wrap framework scaffolding.
|
|
43
|
+
2. Invoke `aitk:setup-init` in Claude Code. The skill detects the stack, resolves flags, previews the full chain, and runs it end-to-end.
|
|
44
|
+
|
|
45
|
+
The chain is:
|
|
46
|
+
|
|
47
|
+
- `aitk init` installs base tooling, Claude seeds, and governance rules into `.claude/rules/` in the same pass
|
|
48
|
+
- `aitk tooling sync <stack>` adds stack-specific deps, scripts, gitignore entries, and drops `.claude/tooling/<stack>.md` (plus parents) as the agent's audit context
|
|
49
|
+
- The agent follows the reference to generate eslint, vitest, playwright configs and the stack's setup script, and extends `.claude/context/ci.md` and `.claude/context/development.md` per the reference's extend sections
|
|
50
|
+
- `setup-verify` runs the installed `package.json` scripts (lint, typecheck, check, test, build) and reports pass or fail
|
|
51
|
+
|
|
52
|
+
Keep the `## Scripts` table in `.claude/context/development.md` current as scripts are added. Base tooling seeds that entry with the commands it installs, and each stack reference extends the table. `project-commands` reads it to start the app or run a check on request, so a command missing from the table cannot be run that way.
|
|
53
|
+
|
|
54
|
+
### From scaffold to first feature
|
|
55
|
+
|
|
56
|
+
Scaffold installs tooling and seeds. It does not fill the planning docs or the design system. Complete those before the first feature session:
|
|
57
|
+
|
|
58
|
+
1. Fill `.claude/REQUIREMENTS.md` and `.claude/ARCHITECTURE.md`. The seed provides the files, the scope and decisions are yours to write.
|
|
59
|
+
2. For a UI project, invoke `aitk:claude-design-propose` to draft `.claude/DESIGN.md` from the requirements and a `## Personality` section. Skip for non-UI projects.
|
|
60
|
+
3. Optionally invoke `aitk:claude-diagram` to draft `.claude/DIAGRAMS.md` from the architecture. It renders each diagram to verify the layout, which downloads the Mermaid CLI on first use and takes about 15 seconds. A machine without a renderer still gets the diagrams and is told which check was skipped.
|
|
61
|
+
4. Start the feature loop. See [AI workflow](ai-workflow.md) for the per-feature sequence.
|
|
62
|
+
|
|
63
|
+
### Stack decision
|
|
64
|
+
|
|
65
|
+
The default path is `base`. `aitk init` on `base` installs base tooling configs, Claude seeds, governance core rules, and snippets, and scaffolds an empty `.claude/wiki/`. Most projects need nothing more.
|
|
66
|
+
|
|
67
|
+
Escalate only for real web apps. The `setup-init` skill reads `package.json` and root configs, then picks the matching tooling stack (`vite-react` today) and the matching governance stack (`react`, `astro`, `node`).
|
|
68
|
+
|
|
69
|
+
Markdown-heavy projects, CLI tools, docs sites, research notebooks, and scripting repos stay on `base`. Escalation is a ceiling move, not a default.
|
|
70
|
+
|
|
71
|
+
Run `aitk tooling list --json` and `aitk gov list --json` to see the current catalogs. Never hardcode stack names.
|
|
72
|
+
|
|
73
|
+
### Core domains and skips
|
|
74
|
+
|
|
75
|
+
`aitk init` installs base tooling, Claude workflow, governance, standards, and snippets, and scaffolds `.claude/wiki/`. Governance defaults to the `base` stack, so a bare init carries the rules that route to the standards it installs alongside them. Pass `--stack <name>` to install a framework stack instead.
|
|
76
|
+
|
|
77
|
+
`governance`, `standards`, and `wiki` are skippable:
|
|
78
|
+
|
|
79
|
+
- `--skip governance`: leave `.claude/rules/` empty. Standards still install, so `.claude/standards/prose.md` lands with nothing pointing at it and no coding standard loads on a file match. The preview names any `--add` rules the skip drops, and the run prints the `aitk gov install <stack> <path>` command to add rules afterward, carrying those extras so one paste restores what the skip declined.
|
|
80
|
+
- `--skip standards`: leave standards out. The governance rules still reference `.claude/standards/`, so their authority lines resolve to nothing. Toolkit skills are unaffected, since each falls back to the copy in its own plugin root.
|
|
81
|
+
- `--skip wiki`: skip the `.claude/wiki/` scaffold. A target that already carries a root `wiki/` keeps it, since the verb reports that folder rather than migrating it.
|
|
82
|
+
|
|
83
|
+
## Add a domain later
|
|
84
|
+
|
|
85
|
+
When a new need appears after scaffold, install the one domain without re-running `aitk init`.
|
|
86
|
+
|
|
87
|
+
- Governance rule for a newly adopted library: invoke `aitk:setup-gov`, or run `aitk gov install <stack> --add <rule> <path>`
|
|
88
|
+
- Project-specific rule the toolkit does not ship: invoke `aitk:create-rule`. It scaffolds a rule into `.claude/rules/` with a non-colliding number, and `aitk gov sync` leaves it untouched.
|
|
89
|
+
- Index.md system for a markdown-heavy folder that emerged: invoke `aitk:setup-indexes`
|
|
90
|
+
- A snippet preset or category: `aitk snippets install <preset|category|all> <path>`. The argument is required, since the picker refuses headlessly rather than choosing for the caller
|
|
91
|
+
- A single standard: `aitk standards install <name> <path>`
|
|
92
|
+
|
|
93
|
+
Per-domain mechanics live in the corresponding `docs/<domain>.md`. The skill body in `claude/skills/<skill>/SKILL.md` covers detection and preview.
|
|
94
|
+
|
|
95
|
+
## Sync upstream drift
|
|
96
|
+
|
|
97
|
+
When the toolkit updates, target projects pull changes per domain. There is one catch-all and several targeted entry points.
|
|
98
|
+
|
|
99
|
+
### Check first
|
|
100
|
+
|
|
101
|
+
`aitk sync --check <path>` reports what has drifted without writing anything. It splits each difference by cause, which is the question that decides what to do next. A `stale` file still matches what the toolkit installed, so the update is mechanical. A `customized` file carries local edits, so taking the upstream version is a decision and `aitk:claude-seed-sync` is the tool for it. A `stranded` file sits where an older toolkit installed it and the toolkit has since moved, which is what `aitk:migration-standards` handles.
|
|
102
|
+
|
|
103
|
+
That attribution comes from `.claude/aitk.json`, a stamp every install and sync writes recording a hash per installed file. Each domain holds its own toolkit commit, so syncing governance today does not move the revision standards measures against, and each domain reports the upstream commits touching its own source path. A project that has never synced under a toolkit new enough to write a stamp reports every difference as `drifted`, the unattributed verdict. Running any sync stamps that domain, and the report names the ones still unstamped.
|
|
104
|
+
|
|
105
|
+
Add `--json` for the machine-readable report, and `--exit-code` to fail a CI job when a target falls behind. Files the project authored itself never count toward that exit code.
|
|
106
|
+
|
|
107
|
+
Tooling is not covered by the stamp. Reconcile those configs with `aitk tooling <stack> <path>`.
|
|
108
|
+
|
|
109
|
+
### Catch-all
|
|
110
|
+
|
|
111
|
+
`aitk sync <path>` runs every installed domain's sync in sequence. Safe to run on a cadence. It never touches user-owned seed files. Governance rules in `.claude/rules/`, tooling configs, and reference docs refresh in place. Stale `.claude/GOV.md` from earlier installs is removed.
|
|
112
|
+
|
|
113
|
+
Standards are the exception inside that run, and the stamp narrows it. A standard the project customized is reported and left alone rather than overwritten. A standard still matching what was installed carries no local edits to lose, so a headless run updates it. On an unstamped project the old blanket rule holds and every drifted standard is left alone. To take the upstream version of a customized file, run `aitk standards sync <path>` interactively, or use `aitk:claude-seed-sync` below to merge section by section.
|
|
114
|
+
|
|
115
|
+
### Targeted
|
|
116
|
+
|
|
117
|
+
- Claude seed docs such as `CLAUDE.md` and `.claude/REQUIREMENTS.md`, plus installed standards under `.claude/standards/`: invoke `aitk:claude-seed-sync`. The skill splits each file into a preamble (between the H1 and the first H2) plus one part per `##` section, then diffs part by part across both surfaces and proposes per-part edits. User customizations are preserved.
|
|
118
|
+
- Governance rules already installed: `aitk gov sync <path>` diffs and applies, and never adds new rules
|
|
119
|
+
- Standards already installed: `aitk standards sync <path>` diffs and applies whole files, and refuses to apply without a prompt
|
|
120
|
+
- Tooling configs and seeds: `aitk tooling <stack> <path>` overwrites golden configs and merges seeds
|
|
121
|
+
- Reference docs for a stack: `aitk tooling ref <stack> <path>`
|
|
122
|
+
- Index regeneration after markdown edits: `aitk indexes regen`
|
|
123
|
+
|
|
124
|
+
Use a targeted entry point when only one surface moved upstream. Use the catch-all when the toolkit lands a bundled release.
|
|
125
|
+
|
|
126
|
+
## Verify a sync
|
|
127
|
+
|
|
128
|
+
Before running a sync against a real project, run the relevant sandbox scenario. The sandbox provisions a representative project state and routes `SANDBOX_SCENARIO=sync` through the domain flow. See [sandbox](../.claude/context/sandbox.md) for the scenario catalog and routing patterns.
|
|
129
|
+
|
|
130
|
+
## Scenarios
|
|
131
|
+
|
|
132
|
+
### Markdown-heavy project
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
cd <your-project>
|
|
136
|
+
claude
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
In the session, invoke `aitk:setup-init`. The skill detects no framework, resolves tooling to `base`, governance to `base`, snippets to `all`, and auto-enables `standards` if `docs/` exists. It previews the chain, then runs `aitk init`.
|
|
140
|
+
|
|
141
|
+
Ongoing: run `aitk sync --check .` to see what has drifted, then invoke `aitk:claude-seed-sync` for seed drift or `aitk sync .` for a catch-all refresh.
|
|
142
|
+
|
|
143
|
+
### Web application
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
bun create vite my-app && cd my-app
|
|
147
|
+
claude
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Invoke `aitk:setup-init`. The skill reads `package.json` and the Vite config, resolves tooling to `vite-react` and governance to `react`, and runs `aitk init` with the resolved flags.
|
|
151
|
+
|
|
152
|
+
Ongoing maintenance:
|
|
153
|
+
|
|
154
|
+
- What has drifted: `aitk sync --check .`
|
|
155
|
+
- Seed drift: invoke `aitk:claude-seed-sync`
|
|
156
|
+
- Catch-all sync: `aitk sync .`
|
|
157
|
+
- Governance rule refresh only: `aitk gov sync .`
|
|
158
|
+
- Layer a new rule on top, for example `260-shadcn` after adopting shadcn: `aitk gov install react --add 260-shadcn .`
|
|
159
|
+
|
|
160
|
+
### Monorepo with multiple language roots
|
|
161
|
+
|
|
162
|
+
The repo root owns the shared `base` layer, and each language lives in its own subfolder.
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
aitk init --stack react .
|
|
166
|
+
aitk tooling sync vite-react ./frontend --skip base
|
|
167
|
+
aitk tooling sync python ./backend --skip base
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
`--skip base` drops the `base` layer from each subtree sync, so husky, prettier, cspell, commitlint, and CI stay single at the repo root. Without it, every subtree re-drops husky, and since git honors only one `core.hooksPath` the extra hook dirs silently break. Each subtree still gets its own framework configs (eslint, vitest, tsconfig, vite) and its own `.claude/tooling/<stack>.md` audit docs.
|
|
171
|
+
|
|
172
|
+
## Running sync from an agent session
|
|
173
|
+
|
|
174
|
+
`aitk sync .` applies every installed domain sync, then offers to commit the result and open a pull request. That last step needs a terminal. Under `AITK_NON_INTERACTIVE=1`, which is how an agent runs it, the domain syncs still apply and the git workflow is refused: the command reports the branch and commit it would have created, writes nothing to git, and exits 0. Review the working tree and commit it yourself, or rerun interactively to reach the commit and pull request options.
|
|
175
|
+
|
|
176
|
+
Sync also refuses a target whose working tree is dirty, so commit or stash before running it. `aitk sync --check .` has neither restriction, since it writes nothing.
|
|
177
|
+
|
|
178
|
+
## Related
|
|
179
|
+
|
|
180
|
+
- [agents](agents.md): CLI flags, exit codes, and JSON output shapes
|
|
181
|
+
- [AI workflow](ai-workflow.md): feature-development loop inside a toolkit-managed project
|
|
182
|
+
- [tooling](../.claude/context/tooling.md), [governance](../.claude/context/governance.md), [claude plugin](../.claude/context/claude-plugin.md), [indexes](../.claude/context/indexes.md), [snippets](../.claude/context/snippets.md), [standards](../.claude/context/standards.md): per-domain mechanics
|
|
183
|
+
- [sandbox](../.claude/context/sandbox.md): scenario catalog for verifying domain flows
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Visual design workflow
|
|
3
|
+
description: Tiered guide for design and wireframe authoring with Claude Code
|
|
4
|
+
category: Workflow
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Visual design workflow
|
|
8
|
+
|
|
9
|
+
Three tiers cover the range from prose-only design docs to a fully graphical design source of truth. Pick one per project based on how UI-heavy the work is, whether stakeholders review visuals, and whether a designer is involved. Tiers stack, so moving up does not invalidate work done at a lower tier.
|
|
10
|
+
|
|
11
|
+
The tier framework sits alongside [Claude Design](../wiki/claude-design.md), [visual wireframes](../wiki/visual-wireframes.md), [community skills and plugins](../wiki/community-skills.md), and [community MCP servers](../wiki/community-mcp-servers.md). Those pages catalog the tooling. This page decides when to reach for what.
|
|
12
|
+
|
|
13
|
+
Two tools anchor tier 1 and tier 2. [Stitch](../wiki/stitch.md) is the agent-addressable default through its MCP server at `stitch.googleapis.com/mcp`, with a free tier of 400 daily credits that covers daily iteration. [Claude Design](../wiki/claude-design.md), released 2026-04-17 and priced inside Claude subscriptions, is the ceiling tool reserved for codebase extraction and the richly annotated handoff bundle. Each covers a different job, they are not swappable.
|
|
14
|
+
|
|
15
|
+
## Tier 0: prose only
|
|
16
|
+
|
|
17
|
+
The default. `.claude/DESIGN.md` holds visual intent as prose plus token tables for color, typography, spacing, borders, motion, and iconography. `.claude/WIREFRAMES.md` holds ASCII layouts. Claude Code reads both and writes the implementation. Works for CLI tools, internal dashboards, admin panels, and backend-focused projects.
|
|
18
|
+
|
|
19
|
+
### Seed shape
|
|
20
|
+
|
|
21
|
+
The toolkit seed in `tooling/claude/seeds/.claude/DESIGN.md` ships a token-table template. The `aitk:claude-design-extract` skill drafts the file from a project's existing prose and CLI UI surfaces. `aitk design render` writes an HTML plus CSS preview to `.claude/review/design/` for eyeballing the current system without leaving Claude Code. See `.claude/context/design.md`.
|
|
22
|
+
|
|
23
|
+
### Tools
|
|
24
|
+
|
|
25
|
+
- None beyond Claude Code itself
|
|
26
|
+
- Playwright CLI optional for verifying form submissions and interactive surfaces. See [`claude-ui-test`](../claude/skills/claude-ui-test/SKILL.md).
|
|
27
|
+
|
|
28
|
+
### Skills
|
|
29
|
+
|
|
30
|
+
- `aitk:claude-design-extract` to draft `.claude/DESIGN.md` from existing project signals
|
|
31
|
+
- `aitk:claude-ui-test` for e2e test generation after UI changes
|
|
32
|
+
- `aitk:claude-ux-audit` for UX gap detection on existing surfaces
|
|
33
|
+
- Anthropic's `frontend-design` plugin optional for light visual steering
|
|
34
|
+
|
|
35
|
+
### When to pick
|
|
36
|
+
|
|
37
|
+
- UI is not the core product
|
|
38
|
+
- Design decisions are few and can be written as sentences
|
|
39
|
+
- No designer on the project
|
|
40
|
+
- Stakeholders review code or behavior rather than mockups
|
|
41
|
+
|
|
42
|
+
## Tier 1: visual companion
|
|
43
|
+
|
|
44
|
+
ASCII and prose stay as source of truth. Add a visual render as a feedback surface for the agent and for human review. Stitch via MCP handles agent-driven generation of prototypes and design systems. Excalidraw handles agent-driven wireframes when the round-trip canvas loop matters. Claude Design joins only when codebase extraction or the annotated handoff bundle is worth the ceiling cost. All three produce derived artifacts, so human edits are review annotations rather than source changes.
|
|
45
|
+
|
|
46
|
+
### Seed shape
|
|
47
|
+
|
|
48
|
+
Same as tier 0 with two additions. `WIREFRAMES.md` opts into Excalidraw rendering via a top-of-file marker like `<!-- excalidraw: WIREFRAMES.excalidraw -->`. `DESIGN.md` stays human-maintained, and its content is what the toolkit provisions into Stitch via `create_design_system` when visual generation is needed.
|
|
49
|
+
|
|
50
|
+
Impeccable, if installed, keeps its own root `DESIGN.md` and `PRODUCT.md` in the Stitch DESIGN.md spec format. These are separate files from the toolkit's `.claude/DESIGN.md` and are not synced with it. Treat impeccable's pair as its own source of truth for its commands, and the toolkit's `.claude/DESIGN.md` as the source other toolkit skills read.
|
|
51
|
+
|
|
52
|
+
### Tools
|
|
53
|
+
|
|
54
|
+
- Stitch via MCP at `stitch.googleapis.com/mcp`. Default pick for agent-driven visual generation. Free tier of 400 daily credits. See [Stitch](../wiki/stitch.md).
|
|
55
|
+
- Excalidraw canvas server on localhost plus the `yctimlin/mcp_excalidraw` MCP shim, for projects that need an agent to draw, read back, and revise a canvas. See [visual wireframes](../wiki/visual-wireframes.md) for setup and footguns.
|
|
56
|
+
- Playwright MCP for browser-side verification. See [Playwright](../wiki/community-mcp-servers.md#playwright-microsoft).
|
|
57
|
+
- Chrome DevTools MCP for live frontend debugging. See [Chrome DevTools](../wiki/community-mcp-servers.md#chrome-devtools-google).
|
|
58
|
+
- Claude Design as the ceiling option for codebase extraction or polished handoff bundles. See [Claude Design](../wiki/claude-design.md).
|
|
59
|
+
|
|
60
|
+
### Skills
|
|
61
|
+
|
|
62
|
+
- Everything from tier 0
|
|
63
|
+
- A frontend design skill to steer visual quality. Pick one of [Impeccable](../wiki/community-skills.md#pbakausimpeccable), [UI/UX Pro Max](../wiki/community-skills.md#nextlevelbuilderui-ux-pro-max-skill), or Anthropic's `frontend-design` plugin. Impeccable is the strongest default because of its curated anti-patterns.
|
|
64
|
+
|
|
65
|
+
### When to pick
|
|
66
|
+
|
|
67
|
+
- UI is a meaningful part of the product but not the entire product
|
|
68
|
+
- Stakeholders want to see layout proposals before code exists
|
|
69
|
+
- Design decisions benefit from visual inspection
|
|
70
|
+
- A single contributor owns both design and implementation
|
|
71
|
+
|
|
72
|
+
### Stitch vs Excalidraw vs Claude Design in tier 1
|
|
73
|
+
|
|
74
|
+
The three tools solve non-overlapping halves of the visual companion problem.
|
|
75
|
+
|
|
76
|
+
Stitch via MCP generates polished prototypes from text and a provisioned design system, scripted from a Claude Code session. Output is human-facing and lives in Stitch. Free daily quota makes it the right pick for frequent iteration.
|
|
77
|
+
|
|
78
|
+
Excalidraw gives the agent a canvas it can read back over MCP. Output is agent-facing and persists as a JSON file in the repo. Pick it when Claude Code needs to iterate on wireframes autonomously, not when a human needs polished review artifacts.
|
|
79
|
+
|
|
80
|
+
Claude Design reads the raw codebase without prose curation and produces a polished handoff bundle with chat history. Weekly quota makes it expensive, so reserve it for the extraction pass or the final handoff moment, not daily iteration.
|
|
81
|
+
|
|
82
|
+
Most tier 1 projects pick one. Projects with a messy codebase and no curated `DESIGN.md` may want Claude Design once for the initial extraction, then move to Stitch for ongoing work.
|
|
83
|
+
|
|
84
|
+
## Tier 2: visual as source of truth
|
|
85
|
+
|
|
86
|
+
Design happens in a graphical tool. `.claude/DESIGN.md` either regenerates from the graphical source or takes a secondary role as agent-facing summary. Implementation follows the graphical source, either through an MCP round-trip or a one-way handoff bundle. Fits teams with a dedicated designer or projects where design iteration outpaces code changes.
|
|
87
|
+
|
|
88
|
+
### Seed shape
|
|
89
|
+
|
|
90
|
+
`.claude/DESIGN.md` becomes a generated artifact. A top-of-file note identifies the upstream source, either a Claude Design project ID or a Figma file URL. Manual edits in the seed carry a warning tag because they will not survive regeneration.
|
|
91
|
+
|
|
92
|
+
### Tools
|
|
93
|
+
|
|
94
|
+
- Figma desktop app with the [Figma Dev Mode MCP](../wiki/community-skills.md#figma-mcp-and-code-to-canvas) for teams with a dedicated designer already on Figma. Bidirectional sync and Code to Canvas capture.
|
|
95
|
+
- Claude Design with its Claude Code handoff bundle for teams without an existing Figma investment and for solo founders or PMs driving design themselves. One-way handoff, no bidirectional sync. See [Claude Design](../wiki/claude-design.md).
|
|
96
|
+
- Stitch via MCP as a low-cost complement to either, used for bulk screen generation driven by Claude Code. See [Stitch](../wiki/stitch.md).
|
|
97
|
+
- Playwright and Chrome DevTools MCPs as in tier 1
|
|
98
|
+
|
|
99
|
+
### Skills
|
|
100
|
+
|
|
101
|
+
- Everything from tier 1
|
|
102
|
+
|
|
103
|
+
### When to pick
|
|
104
|
+
|
|
105
|
+
- UI is the product or a major differentiator
|
|
106
|
+
- A dedicated designer is on the project or will join
|
|
107
|
+
- Design review happens in the graphical tool rather than in code
|
|
108
|
+
- Design changes more often than implementation
|
|
109
|
+
|
|
110
|
+
### Figma vs Claude Design in tier 2
|
|
111
|
+
|
|
112
|
+
Figma wins when a dedicated designer already owns a Figma file, external collaborators expect Figma for review, or the workflow needs the agent to capture a running Claude Code UI and push it back as editable frames via Code to Canvas. Figma's MCP is bidirectional.
|
|
113
|
+
|
|
114
|
+
Claude Design wins when nobody on the team has a Figma workflow yet and the handoff bundle with chat history is the intended implementation path. Claude Design's handoff is one-way, and its quota limits daily iteration, so it is most useful for the initial extraction pass and the final handoff moment rather than day-to-day design work.
|
|
115
|
+
|
|
116
|
+
Either of the above pairs cleanly with Stitch via MCP for agent-driven screen generation between the two anchor moments.
|
|
117
|
+
|
|
118
|
+
## Decision guide
|
|
119
|
+
|
|
120
|
+
Four questions. Each yes weighs toward a higher tier.
|
|
121
|
+
|
|
122
|
+
- Is the UI the product rather than a thin interface over a backend?
|
|
123
|
+
- Do non-engineers review visual proposals before code exists?
|
|
124
|
+
- Is there a dedicated designer, or will there be one?
|
|
125
|
+
- Does design iterate independently of code?
|
|
126
|
+
|
|
127
|
+
Zero or one yes: tier 0. Two or three: tier 1. Four: tier 2. Resist over-tiering early. Moving up is cheap because tiers stack. Moving down means abandoning tooling and confusing collaborators.
|
|
128
|
+
|
|
129
|
+
## References
|
|
130
|
+
|
|
131
|
+
- [Stitch](../wiki/stitch.md): Gemini-powered design product with the MCP server that anchors tier 1
|
|
132
|
+
- [Claude Design](../wiki/claude-design.md): first-party hosted design product and handoff bundle
|
|
133
|
+
- `.claude/context/claude-plugin.md`: how to decide between workflow and domain-knowledge skills
|
|
134
|
+
- [Visual wireframes](../wiki/visual-wireframes.md): Excalidraw research and setup for the tier 1 wireframe companion
|
|
135
|
+
- [Community skills and plugins](../wiki/community-skills.md): catalog of frontend design skills and integrations
|
|
136
|
+
- [Community MCP servers](../wiki/community-mcp-servers.md): catalog of MCPs referenced across all tiers
|