@jahanxu/trellis 0.4.1
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 +235 -0
- package/README.md +212 -0
- package/bin/trellis.js +3 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +97 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/init.d.ts +21 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +527 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/update.d.ts +27 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +1289 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/configurators/antigravity.d.ts +8 -0
- package/dist/configurators/antigravity.d.ts.map +1 -0
- package/dist/configurators/antigravity.js +18 -0
- package/dist/configurators/antigravity.js.map +1 -0
- package/dist/configurators/claude.d.ts +32 -0
- package/dist/configurators/claude.d.ts.map +1 -0
- package/dist/configurators/claude.js +98 -0
- package/dist/configurators/claude.js.map +1 -0
- package/dist/configurators/codex.d.ts +8 -0
- package/dist/configurators/codex.d.ts.map +1 -0
- package/dist/configurators/codex.js +20 -0
- package/dist/configurators/codex.js.map +1 -0
- package/dist/configurators/cursor.d.ts +5 -0
- package/dist/configurators/cursor.d.ts.map +1 -0
- package/dist/configurators/cursor.js +52 -0
- package/dist/configurators/cursor.js.map +1 -0
- package/dist/configurators/gemini.d.ts +8 -0
- package/dist/configurators/gemini.d.ts.map +1 -0
- package/dist/configurators/gemini.js +52 -0
- package/dist/configurators/gemini.js.map +1 -0
- package/dist/configurators/iflow.d.ts +33 -0
- package/dist/configurators/iflow.d.ts.map +1 -0
- package/dist/configurators/iflow.js +99 -0
- package/dist/configurators/iflow.js.map +1 -0
- package/dist/configurators/index.d.ts +55 -0
- package/dist/configurators/index.d.ts.map +1 -0
- package/dist/configurators/index.js +220 -0
- package/dist/configurators/index.js.map +1 -0
- package/dist/configurators/kilo.d.ts +8 -0
- package/dist/configurators/kilo.d.ts.map +1 -0
- package/dist/configurators/kilo.js +51 -0
- package/dist/configurators/kilo.js.map +1 -0
- package/dist/configurators/kiro.d.ts +8 -0
- package/dist/configurators/kiro.d.ts.map +1 -0
- package/dist/configurators/kiro.js +20 -0
- package/dist/configurators/kiro.js.map +1 -0
- package/dist/configurators/opencode.d.ts +32 -0
- package/dist/configurators/opencode.d.ts.map +1 -0
- package/dist/configurators/opencode.js +92 -0
- package/dist/configurators/opencode.js.map +1 -0
- package/dist/configurators/shared.d.ts +12 -0
- package/dist/configurators/shared.d.ts.map +1 -0
- package/dist/configurators/shared.js +21 -0
- package/dist/configurators/shared.js.map +1 -0
- package/dist/configurators/workflow.d.ts +28 -0
- package/dist/configurators/workflow.d.ts.map +1 -0
- package/dist/configurators/workflow.js +134 -0
- package/dist/configurators/workflow.js.map +1 -0
- package/dist/constants/paths.d.ts +68 -0
- package/dist/constants/paths.d.ts.map +1 -0
- package/dist/constants/paths.js +77 -0
- package/dist/constants/paths.js.map +1 -0
- package/dist/constants/version.d.ts +9 -0
- package/dist/constants/version.d.ts.map +1 -0
- package/dist/constants/version.js +15 -0
- package/dist/constants/version.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/index.d.ts +54 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +160 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifests/0.1.9.json +30 -0
- package/dist/migrations/manifests/0.2.0.json +49 -0
- package/dist/migrations/manifests/0.2.12.json +9 -0
- package/dist/migrations/manifests/0.2.13.json +9 -0
- package/dist/migrations/manifests/0.2.14.json +175 -0
- package/dist/migrations/manifests/0.2.15.json +33 -0
- package/dist/migrations/manifests/0.3.0-beta.0.json +278 -0
- package/dist/migrations/manifests/0.3.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
- package/dist/migrations/manifests/0.3.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.9.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.2.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.3.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.4.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.5.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.6.json +9 -0
- package/dist/migrations/manifests/0.3.0.json +11 -0
- package/dist/templates/antigravity/index.d.ts +12 -0
- package/dist/templates/antigravity/index.d.ts.map +1 -0
- package/dist/templates/antigravity/index.js +29 -0
- package/dist/templates/antigravity/index.js.map +1 -0
- package/dist/templates/claude/agents/check.md +122 -0
- package/dist/templates/claude/agents/debug.md +106 -0
- package/dist/templates/claude/agents/dispatch.md +214 -0
- package/dist/templates/claude/agents/implement.md +96 -0
- package/dist/templates/claude/agents/plan.md +396 -0
- package/dist/templates/claude/agents/research.md +120 -0
- package/dist/templates/claude/commands/trellis/before-backend-dev.md +13 -0
- package/dist/templates/claude/commands/trellis/before-frontend-dev.md +13 -0
- package/dist/templates/claude/commands/trellis/before-role-work.md +364 -0
- package/dist/templates/claude/commands/trellis/brainstorm.md +474 -0
- package/dist/templates/claude/commands/trellis/break-loop.md +125 -0
- package/dist/templates/claude/commands/trellis/check-backend.md +13 -0
- package/dist/templates/claude/commands/trellis/check-cross-layer.md +153 -0
- package/dist/templates/claude/commands/trellis/check-frontend.md +13 -0
- package/dist/templates/claude/commands/trellis/create-command.md +154 -0
- package/dist/templates/claude/commands/trellis/finish-work.md +153 -0
- package/dist/templates/claude/commands/trellis/handoff.md +445 -0
- package/dist/templates/claude/commands/trellis/integrate-skill.md +219 -0
- package/dist/templates/claude/commands/trellis/onboard.md +358 -0
- package/dist/templates/claude/commands/trellis/parallel.md +193 -0
- package/dist/templates/claude/commands/trellis/pick-task.md +515 -0
- package/dist/templates/claude/commands/trellis/record-session.md +62 -0
- package/dist/templates/claude/commands/trellis/start.md +373 -0
- package/dist/templates/claude/commands/trellis/update-spec.md +354 -0
- package/dist/templates/claude/hooks/inject-subagent-context.py +873 -0
- package/dist/templates/claude/hooks/ralph-loop.py +388 -0
- package/dist/templates/claude/hooks/session-start.py +200 -0
- package/dist/templates/claude/index.d.ts +54 -0
- package/dist/templates/claude/index.d.ts.map +1 -0
- package/dist/templates/claude/index.js +85 -0
- package/dist/templates/claude/index.js.map +1 -0
- package/dist/templates/claude/settings.json +41 -0
- package/dist/templates/codex/index.d.ts +18 -0
- package/dist/templates/codex/index.d.ts.map +1 -0
- package/dist/templates/codex/index.js +40 -0
- package/dist/templates/codex/index.js.map +1 -0
- package/dist/templates/codex/skills/before-backend-dev/SKILL.md +18 -0
- package/dist/templates/codex/skills/before-frontend-dev/SKILL.md +18 -0
- package/dist/templates/codex/skills/brainstorm/SKILL.md +479 -0
- package/dist/templates/codex/skills/break-loop/SKILL.md +130 -0
- package/dist/templates/codex/skills/check-backend/SKILL.md +18 -0
- package/dist/templates/codex/skills/check-cross-layer/SKILL.md +158 -0
- package/dist/templates/codex/skills/check-frontend/SKILL.md +18 -0
- package/dist/templates/codex/skills/create-command/SKILL.md +101 -0
- package/dist/templates/codex/skills/finish-work/SKILL.md +148 -0
- package/dist/templates/codex/skills/integrate-skill/SKILL.md +221 -0
- package/dist/templates/codex/skills/onboard/SKILL.md +363 -0
- package/dist/templates/codex/skills/record-session/SKILL.md +67 -0
- package/dist/templates/codex/skills/start/SKILL.md +330 -0
- package/dist/templates/codex/skills/update-spec/SKILL.md +335 -0
- package/dist/templates/cursor/commands/trellis-before-backend-dev.md +13 -0
- package/dist/templates/cursor/commands/trellis-before-frontend-dev.md +13 -0
- package/dist/templates/cursor/commands/trellis-brainstorm.md +474 -0
- package/dist/templates/cursor/commands/trellis-break-loop.md +107 -0
- package/dist/templates/cursor/commands/trellis-check-backend.md +13 -0
- package/dist/templates/cursor/commands/trellis-check-cross-layer.md +153 -0
- package/dist/templates/cursor/commands/trellis-check-frontend.md +13 -0
- package/dist/templates/cursor/commands/trellis-create-command.md +154 -0
- package/dist/templates/cursor/commands/trellis-finish-work.md +143 -0
- package/dist/templates/cursor/commands/trellis-integrate-skill.md +219 -0
- package/dist/templates/cursor/commands/trellis-onboard.md +358 -0
- package/dist/templates/cursor/commands/trellis-record-session.md +62 -0
- package/dist/templates/cursor/commands/trellis-start.md +366 -0
- package/dist/templates/cursor/commands/trellis-update-spec.md +354 -0
- package/dist/templates/cursor/index.d.ts +24 -0
- package/dist/templates/cursor/index.d.ts.map +1 -0
- package/dist/templates/cursor/index.js +44 -0
- package/dist/templates/cursor/index.js.map +1 -0
- package/dist/templates/extract.d.ts +166 -0
- package/dist/templates/extract.d.ts.map +1 -0
- package/dist/templates/extract.js +296 -0
- package/dist/templates/extract.js.map +1 -0
- package/dist/templates/gemini/commands/trellis/before-backend-dev.toml +17 -0
- package/dist/templates/gemini/commands/trellis/before-frontend-dev.toml +17 -0
- package/dist/templates/gemini/commands/trellis/brainstorm.toml +420 -0
- package/dist/templates/gemini/commands/trellis/break-loop.toml +129 -0
- package/dist/templates/gemini/commands/trellis/check-backend.toml +17 -0
- package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +147 -0
- package/dist/templates/gemini/commands/trellis/check-frontend.toml +17 -0
- package/dist/templates/gemini/commands/trellis/create-command.toml +119 -0
- package/dist/templates/gemini/commands/trellis/finish-work.toml +133 -0
- package/dist/templates/gemini/commands/trellis/integrate-skill.toml +104 -0
- package/dist/templates/gemini/commands/trellis/onboard.toml +111 -0
- package/dist/templates/gemini/commands/trellis/record-session.toml +66 -0
- package/dist/templates/gemini/commands/trellis/start.toml +292 -0
- package/dist/templates/gemini/commands/trellis/update-spec.toml +132 -0
- package/dist/templates/gemini/index.d.ts +21 -0
- package/dist/templates/gemini/index.d.ts.map +1 -0
- package/dist/templates/gemini/index.js +44 -0
- package/dist/templates/gemini/index.js.map +1 -0
- package/dist/templates/iflow/agents/check.md +122 -0
- package/dist/templates/iflow/agents/debug.md +106 -0
- package/dist/templates/iflow/agents/dispatch.md +214 -0
- package/dist/templates/iflow/agents/implement.md +96 -0
- package/dist/templates/iflow/agents/plan.md +396 -0
- package/dist/templates/iflow/agents/research.md +120 -0
- package/dist/templates/iflow/commands/trellis/before-backend-dev.md +13 -0
- package/dist/templates/iflow/commands/trellis/before-frontend-dev.md +13 -0
- package/dist/templates/iflow/commands/trellis/brainstorm.md +474 -0
- package/dist/templates/iflow/commands/trellis/break-loop.md +125 -0
- package/dist/templates/iflow/commands/trellis/check-backend.md +13 -0
- package/dist/templates/iflow/commands/trellis/check-cross-layer.md +153 -0
- package/dist/templates/iflow/commands/trellis/check-frontend.md +13 -0
- package/dist/templates/iflow/commands/trellis/create-command.md +152 -0
- package/dist/templates/iflow/commands/trellis/finish-work.md +153 -0
- package/dist/templates/iflow/commands/trellis/integrate-skill.md +219 -0
- package/dist/templates/iflow/commands/trellis/onboard.md +358 -0
- package/dist/templates/iflow/commands/trellis/parallel.md +193 -0
- package/dist/templates/iflow/commands/trellis/record-session.md +62 -0
- package/dist/templates/iflow/commands/trellis/start.md +373 -0
- package/dist/templates/iflow/commands/trellis/update-spec.md +354 -0
- package/dist/templates/iflow/hooks/inject-subagent-context.py +788 -0
- package/dist/templates/iflow/hooks/ralph-loop.py +388 -0
- package/dist/templates/iflow/hooks/session-start.py +143 -0
- package/dist/templates/iflow/index.d.ts +54 -0
- package/dist/templates/iflow/index.d.ts.map +1 -0
- package/dist/templates/iflow/index.js +85 -0
- package/dist/templates/iflow/index.js.map +1 -0
- package/dist/templates/iflow/settings.json +40 -0
- package/dist/templates/kilo/commands/trellis/before-backend-dev.md +13 -0
- package/dist/templates/kilo/commands/trellis/before-frontend-dev.md +13 -0
- package/dist/templates/kilo/commands/trellis/brainstorm.md +474 -0
- package/dist/templates/kilo/commands/trellis/break-loop.md +125 -0
- package/dist/templates/kilo/commands/trellis/check-backend.md +13 -0
- package/dist/templates/kilo/commands/trellis/check-cross-layer.md +153 -0
- package/dist/templates/kilo/commands/trellis/check-frontend.md +13 -0
- package/dist/templates/kilo/commands/trellis/create-command.md +152 -0
- package/dist/templates/kilo/commands/trellis/finish-work.md +129 -0
- package/dist/templates/kilo/commands/trellis/integrate-skill.md +219 -0
- package/dist/templates/kilo/commands/trellis/onboard.md +358 -0
- package/dist/templates/kilo/commands/trellis/parallel.md +194 -0
- package/dist/templates/kilo/commands/trellis/record-session.md +62 -0
- package/dist/templates/kilo/commands/trellis/start.md +321 -0
- package/dist/templates/kilo/commands/trellis/update-spec.md +285 -0
- package/dist/templates/kilo/index.d.ts +16 -0
- package/dist/templates/kilo/index.d.ts.map +1 -0
- package/dist/templates/kilo/index.js +39 -0
- package/dist/templates/kilo/index.js.map +1 -0
- package/dist/templates/kiro/index.d.ts +18 -0
- package/dist/templates/kiro/index.d.ts.map +1 -0
- package/dist/templates/kiro/index.js +40 -0
- package/dist/templates/kiro/index.js.map +1 -0
- package/dist/templates/kiro/skills/before-backend-dev/SKILL.md +18 -0
- package/dist/templates/kiro/skills/before-frontend-dev/SKILL.md +18 -0
- package/dist/templates/kiro/skills/brainstorm/SKILL.md +479 -0
- package/dist/templates/kiro/skills/break-loop/SKILL.md +130 -0
- package/dist/templates/kiro/skills/check-backend/SKILL.md +18 -0
- package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +158 -0
- package/dist/templates/kiro/skills/check-frontend/SKILL.md +18 -0
- package/dist/templates/kiro/skills/create-command/SKILL.md +101 -0
- package/dist/templates/kiro/skills/finish-work/SKILL.md +148 -0
- package/dist/templates/kiro/skills/integrate-skill/SKILL.md +221 -0
- package/dist/templates/kiro/skills/onboard/SKILL.md +363 -0
- package/dist/templates/kiro/skills/record-session/SKILL.md +67 -0
- package/dist/templates/kiro/skills/start/SKILL.md +330 -0
- package/dist/templates/kiro/skills/update-spec/SKILL.md +335 -0
- package/dist/templates/markdown/agents.md +18 -0
- package/dist/templates/markdown/gitignore.txt +12 -0
- package/dist/templates/markdown/index.d.ts +27 -0
- package/dist/templates/markdown/index.d.ts.map +1 -0
- package/dist/templates/markdown/index.js +52 -0
- package/dist/templates/markdown/index.js.map +1 -0
- package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/index.md +40 -0
- package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
- package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/script-conventions.md +467 -0
- package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
- package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
- package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +118 -0
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +92 -0
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +94 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +394 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +319 -0
- package/dist/templates/markdown/spec/guides/index.md.txt +79 -0
- package/dist/templates/markdown/workspace-index.md +123 -0
- package/dist/templates/markdown/worktree.yaml.txt +58 -0
- package/dist/templates/opencode/agents/check.md +146 -0
- package/dist/templates/opencode/agents/debug.md +129 -0
- package/dist/templates/opencode/agents/dispatch.md +223 -0
- package/dist/templates/opencode/agents/implement.md +120 -0
- package/dist/templates/opencode/agents/research.md +147 -0
- package/dist/templates/opencode/agents/trellis-plan.md +427 -0
- package/dist/templates/opencode/commands/trellis/before-backend-dev.md +13 -0
- package/dist/templates/opencode/commands/trellis/before-frontend-dev.md +13 -0
- package/dist/templates/opencode/commands/trellis/brainstorm.md +474 -0
- package/dist/templates/opencode/commands/trellis/break-loop.md +125 -0
- package/dist/templates/opencode/commands/trellis/check-backend.md +13 -0
- package/dist/templates/opencode/commands/trellis/check-cross-layer.md +153 -0
- package/dist/templates/opencode/commands/trellis/check-frontend.md +13 -0
- package/dist/templates/opencode/commands/trellis/create-command.md +154 -0
- package/dist/templates/opencode/commands/trellis/finish-work.md +144 -0
- package/dist/templates/opencode/commands/trellis/integrate-skill.md +219 -0
- package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
- package/dist/templates/opencode/commands/trellis/onboard.md +358 -0
- package/dist/templates/opencode/commands/trellis/parallel.md +194 -0
- package/dist/templates/opencode/commands/trellis/record-session.md +62 -0
- package/dist/templates/opencode/commands/trellis/start.md +338 -0
- package/dist/templates/opencode/commands/trellis/update-spec.md +354 -0
- package/dist/templates/opencode/lib/trellis-context.js +436 -0
- package/dist/templates/opencode/package.json +5 -0
- package/dist/templates/opencode/plugin/inject-subagent-context.js +538 -0
- package/dist/templates/opencode/plugin/session-start.js +192 -0
- package/dist/templates/trellis/VERSION +1 -0
- package/dist/templates/trellis/deliverables/README.md +51 -0
- package/dist/templates/trellis/gitignore.txt +29 -0
- package/dist/templates/trellis/index.d.ts +49 -0
- package/dist/templates/trellis/index.d.ts.map +1 -0
- package/dist/templates/trellis/index.js +92 -0
- package/dist/templates/trellis/index.js.map +1 -0
- package/dist/templates/trellis/paths.README.md +277 -0
- package/dist/templates/trellis/paths.yaml +41 -0
- package/dist/templates/trellis/pool/implementations.json +5 -0
- package/dist/templates/trellis/pool/prototypes.json +5 -0
- package/dist/templates/trellis/pool/requirements.json +5 -0
- package/dist/templates/trellis/scripts/__init__.py +5 -0
- package/dist/templates/trellis/scripts/add_session.py +391 -0
- package/dist/templates/trellis/scripts/common/__init__.py +80 -0
- package/dist/templates/trellis/scripts/common/cli_adapter.py +522 -0
- package/dist/templates/trellis/scripts/common/developer.py +189 -0
- package/dist/templates/trellis/scripts/common/git_context.py +383 -0
- package/dist/templates/trellis/scripts/common/paths.py +346 -0
- package/dist/templates/trellis/scripts/common/phase.py +253 -0
- package/dist/templates/trellis/scripts/common/project_paths.py +189 -0
- package/dist/templates/trellis/scripts/common/registry.py +365 -0
- package/dist/templates/trellis/scripts/common/task_queue.py +255 -0
- package/dist/templates/trellis/scripts/common/task_utils.py +177 -0
- package/dist/templates/trellis/scripts/common/worktree.py +218 -0
- package/dist/templates/trellis/scripts/create_bootstrap.py +290 -0
- package/dist/templates/trellis/scripts/get_context.py +16 -0
- package/dist/templates/trellis/scripts/get_developer.py +26 -0
- package/dist/templates/trellis/scripts/handoff_generator.py +380 -0
- package/dist/templates/trellis/scripts/init_developer.py +51 -0
- package/dist/templates/trellis/scripts/multi_agent/__init__.py +5 -0
- package/dist/templates/trellis/scripts/multi_agent/cleanup.py +403 -0
- package/dist/templates/trellis/scripts/multi_agent/create_pr.py +329 -0
- package/dist/templates/trellis/scripts/multi_agent/plan.py +233 -0
- package/dist/templates/trellis/scripts/multi_agent/start.py +461 -0
- package/dist/templates/trellis/scripts/multi_agent/status.py +817 -0
- package/dist/templates/trellis/scripts/pool.py +373 -0
- package/dist/templates/trellis/scripts/task.py +1162 -0
- package/dist/templates/trellis/scripts-shell-archive/add-session.sh +384 -0
- package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +129 -0
- package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +263 -0
- package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +208 -0
- package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +150 -0
- package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +247 -0
- package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +142 -0
- package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +151 -0
- package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +128 -0
- package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +299 -0
- package/dist/templates/trellis/scripts-shell-archive/get-context.sh +7 -0
- package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +15 -0
- package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +34 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +396 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +241 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +207 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +317 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +828 -0
- package/dist/templates/trellis/scripts-shell-archive/task.sh +1204 -0
- package/dist/templates/trellis/spec/roles/designer/index.md +243 -0
- package/dist/templates/trellis/spec/roles/designer/mock-data-standards.md +481 -0
- package/dist/templates/trellis/spec/roles/designer/prototype-guidelines.md +429 -0
- package/dist/templates/trellis/spec/roles/frontend-impl/api-integration.md +565 -0
- package/dist/templates/trellis/spec/roles/frontend-impl/index.md +321 -0
- package/dist/templates/trellis/spec/roles/frontend-impl/state-management.md +599 -0
- package/dist/templates/trellis/spec/roles/pm/index.md +112 -0
- package/dist/templates/trellis/spec/roles/pm/prd-template.md +124 -0
- package/dist/templates/trellis/tasks/.gitkeep +0 -0
- package/dist/templates/trellis/workflow.md +416 -0
- package/dist/templates/trellis/worktree.yaml +47 -0
- package/dist/types/ai-tools.d.ts +56 -0
- package/dist/types/ai-tools.d.ts.map +1 -0
- package/dist/types/ai-tools.js +103 -0
- package/dist/types/ai-tools.js.map +1 -0
- package/dist/types/migration.d.ts +86 -0
- package/dist/types/migration.d.ts.map +1 -0
- package/dist/types/migration.js +8 -0
- package/dist/types/migration.js.map +1 -0
- package/dist/utils/compare-versions.d.ts +12 -0
- package/dist/utils/compare-versions.d.ts.map +1 -0
- package/dist/utils/compare-versions.js +76 -0
- package/dist/utils/compare-versions.js.map +1 -0
- package/dist/utils/file-writer.d.ts +23 -0
- package/dist/utils/file-writer.d.ts.map +1 -0
- package/dist/utils/file-writer.js +140 -0
- package/dist/utils/file-writer.js.map +1 -0
- package/dist/utils/project-detector.d.ts +16 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +186 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/dist/utils/template-fetcher.d.ts +51 -0
- package/dist/utils/template-fetcher.d.ts.map +1 -0
- package/dist/utils/template-fetcher.js +174 -0
- package/dist/utils/template-fetcher.js.map +1 -0
- package/dist/utils/template-hash.d.ts +78 -0
- package/dist/utils/template-hash.d.ts.map +1 -0
- package/dist/utils/template-hash.js +233 -0
- package/dist/utils/template-hash.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
description = "Initialize your AI development session and begin working on tasks"
|
|
2
|
+
|
|
3
|
+
prompt = """
|
|
4
|
+
# Start Session
|
|
5
|
+
|
|
6
|
+
Initialize your AI development session and begin working on tasks.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Operation Types
|
|
11
|
+
|
|
12
|
+
| Marker | Meaning | Executor |
|
|
13
|
+
|--------|---------|----------|
|
|
14
|
+
| `[AI]` | Bash scripts or Task calls executed by AI | You (AI) |
|
|
15
|
+
| `[USER]` | Slash commands executed by user | User |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Initialization `[AI]`
|
|
20
|
+
|
|
21
|
+
### Step 1: Understand Development Workflow
|
|
22
|
+
|
|
23
|
+
First, read the workflow guide to understand the development process:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cat .trellis/workflow.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Follow the instructions in workflow.md** - it contains:
|
|
30
|
+
- Core principles (Read Before Write, Follow Standards, etc.)
|
|
31
|
+
- File system structure
|
|
32
|
+
- Development process
|
|
33
|
+
- Best practices
|
|
34
|
+
|
|
35
|
+
### Step 2: Get Current Context
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
python3 ./.trellis/scripts/get_context.py
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This shows: developer identity, git status, current task (if any), active tasks.
|
|
42
|
+
|
|
43
|
+
### Step 3: Read Guidelines Index
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
cat .trellis/spec/frontend/index.md # Frontend guidelines
|
|
47
|
+
cat .trellis/spec/backend/index.md # Backend guidelines
|
|
48
|
+
cat .trellis/spec/guides/index.md # Thinking guides
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Step 4: Report and Ask
|
|
52
|
+
|
|
53
|
+
Report what you learned and ask: "What would you like to work on?"
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Task Classification
|
|
58
|
+
|
|
59
|
+
When user describes a task, classify it:
|
|
60
|
+
|
|
61
|
+
| Type | Criteria | Workflow |
|
|
62
|
+
|------|----------|----------|
|
|
63
|
+
| **Question** | User asks about code, architecture, or how something works | Answer directly |
|
|
64
|
+
| **Trivial Fix** | Typo fix, comment update, single-line change, < 5 minutes | Direct Edit |
|
|
65
|
+
| **Development Task** | Any code change that: modifies logic, adds features, fixes bugs, touches multiple files | **Task Workflow** |
|
|
66
|
+
|
|
67
|
+
### Decision Rule
|
|
68
|
+
|
|
69
|
+
> **If in doubt, use Task Workflow.**
|
|
70
|
+
>
|
|
71
|
+
> Task Workflow ensures specs are injected to agents, resulting in higher quality code.
|
|
72
|
+
> The overhead is minimal, but the benefit is significant.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Question / Trivial Fix
|
|
77
|
+
|
|
78
|
+
For questions or trivial fixes, work directly:
|
|
79
|
+
|
|
80
|
+
1. Answer question or make the fix
|
|
81
|
+
2. If code was changed, remind user to run `/trellis:finish-work`
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Task Workflow (Development Tasks)
|
|
86
|
+
|
|
87
|
+
**Why this workflow?**
|
|
88
|
+
- Research Agent analyzes what specs are needed
|
|
89
|
+
- Specs are configured in jsonl files
|
|
90
|
+
- Implement Agent receives specs via Hook injection
|
|
91
|
+
- Check Agent verifies against specs
|
|
92
|
+
- Result: Code that follows project conventions automatically
|
|
93
|
+
|
|
94
|
+
### Overview: Two Entry Points
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
From Brainstorm (Complex Task):
|
|
98
|
+
PRD confirmed -> Research -> Configure Context -> Activate -> Implement -> Check -> Complete
|
|
99
|
+
|
|
100
|
+
From Simple Task:
|
|
101
|
+
Confirm -> Create Task -> Write PRD -> Research -> Configure Context -> Activate -> Implement -> Check -> Complete
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Key principle: Research happens AFTER requirements are clear (PRD exists).**
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### Phase 1: Establish Requirements
|
|
109
|
+
|
|
110
|
+
#### Path A: From Brainstorm (skip to Phase 2)
|
|
111
|
+
|
|
112
|
+
PRD and task directory already exist from brainstorm. Skip directly to Phase 2.
|
|
113
|
+
|
|
114
|
+
#### Path B: From Simple Task
|
|
115
|
+
|
|
116
|
+
**Step 1: Confirm Understanding** `[AI]`
|
|
117
|
+
|
|
118
|
+
Quick confirm:
|
|
119
|
+
- What is the goal?
|
|
120
|
+
- What type of development? (frontend / backend / fullstack)
|
|
121
|
+
- Any specific requirements or constraints?
|
|
122
|
+
|
|
123
|
+
**Step 2: Create Task Directory** `[AI]`
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
TASK_DIR=$(python3 ./.trellis/scripts/task.py create "<title>" --slug <name>)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Step 3: Write PRD** `[AI]`
|
|
130
|
+
|
|
131
|
+
Create `prd.md` in the task directory with:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
# <Task Title>
|
|
135
|
+
|
|
136
|
+
## Goal
|
|
137
|
+
<What we're trying to achieve>
|
|
138
|
+
|
|
139
|
+
## Requirements
|
|
140
|
+
- <Requirement 1>
|
|
141
|
+
- <Requirement 2>
|
|
142
|
+
|
|
143
|
+
## Acceptance Criteria
|
|
144
|
+
- [ ] <Criterion 1>
|
|
145
|
+
- [ ] <Criterion 2>
|
|
146
|
+
|
|
147
|
+
## Technical Notes
|
|
148
|
+
<Any technical decisions or constraints>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### Phase 2: Prepare for Implementation (shared)
|
|
154
|
+
|
|
155
|
+
> Both paths converge here. PRD and task directory must exist before proceeding.
|
|
156
|
+
|
|
157
|
+
**Step 4: Code-Spec Depth Check** `[AI]`
|
|
158
|
+
|
|
159
|
+
If the task touches infra or cross-layer contracts, do not start implementation until code-spec depth is defined.
|
|
160
|
+
|
|
161
|
+
Trigger this requirement when the change includes any of:
|
|
162
|
+
- New or changed command/API signatures
|
|
163
|
+
- Database schema or migration changes
|
|
164
|
+
- Infra integrations (storage, queue, cache, secrets, env contracts)
|
|
165
|
+
- Cross-layer payload transformations
|
|
166
|
+
|
|
167
|
+
Must-have before proceeding:
|
|
168
|
+
- [ ] Target spec files to update are identified
|
|
169
|
+
- [ ] Concrete contract is defined (signature, fields, env keys)
|
|
170
|
+
- [ ] Validation and error matrix is defined
|
|
171
|
+
- [ ] At least one Good/Base/Bad case is defined
|
|
172
|
+
|
|
173
|
+
**Step 5: Research the Codebase** `[AI]`
|
|
174
|
+
|
|
175
|
+
Based on the confirmed PRD, run a focused research pass and produce:
|
|
176
|
+
|
|
177
|
+
1. Relevant spec files in `.trellis/spec/`
|
|
178
|
+
2. Existing code patterns to follow (2-3 examples)
|
|
179
|
+
3. Files that will likely need modification
|
|
180
|
+
|
|
181
|
+
Use this output format:
|
|
182
|
+
|
|
183
|
+
```markdown
|
|
184
|
+
## Relevant Specs
|
|
185
|
+
- <path>: <why it's relevant>
|
|
186
|
+
|
|
187
|
+
## Code Patterns Found
|
|
188
|
+
- <pattern>: <example file path>
|
|
189
|
+
|
|
190
|
+
## Files to Modify
|
|
191
|
+
- <path>: <what change>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Step 6: Configure Context** `[AI]`
|
|
195
|
+
|
|
196
|
+
Initialize default context:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type>
|
|
200
|
+
# type: backend | frontend | fullstack
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Add specs found in your research pass:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# For each relevant spec and code pattern:
|
|
207
|
+
python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" implement "<path>" "<reason>"
|
|
208
|
+
python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" check "<path>" "<reason>"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Step 7: Activate Task** `[AI]`
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
python3 ./.trellis/scripts/task.py start "$TASK_DIR"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
This sets `.current-task` so hooks can inject context.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### Phase 3: Execute (shared)
|
|
222
|
+
|
|
223
|
+
**Step 8: Implement** `[AI]`
|
|
224
|
+
|
|
225
|
+
Implement the task described in `prd.md`.
|
|
226
|
+
|
|
227
|
+
- Follow all specs injected into implement context
|
|
228
|
+
- Keep changes scoped to requirements
|
|
229
|
+
- Run lint and typecheck before finishing
|
|
230
|
+
|
|
231
|
+
**Step 9: Check Quality** `[AI]`
|
|
232
|
+
|
|
233
|
+
Run a quality pass against check context:
|
|
234
|
+
|
|
235
|
+
- Review all code changes against the specs
|
|
236
|
+
- Fix issues directly
|
|
237
|
+
- Ensure lint and typecheck pass
|
|
238
|
+
|
|
239
|
+
**Step 10: Complete** `[AI]`
|
|
240
|
+
|
|
241
|
+
1. Verify lint and typecheck pass
|
|
242
|
+
2. Report what was implemented
|
|
243
|
+
3. Remind user to:
|
|
244
|
+
- Test the changes
|
|
245
|
+
- Commit when ready
|
|
246
|
+
- Run `/trellis:record-session` to record this session
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Continuing Existing Task
|
|
251
|
+
|
|
252
|
+
If `get_context.py` shows a current task:
|
|
253
|
+
|
|
254
|
+
1. Read the task's `prd.md` to understand the goal
|
|
255
|
+
2. Check `task.json` for current status and phase
|
|
256
|
+
3. Ask user: "Continue working on <task-name>?"
|
|
257
|
+
|
|
258
|
+
If yes, resume from the appropriate step (usually Step 7 or 8).
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Commands Reference
|
|
263
|
+
|
|
264
|
+
### User Commands `[USER]`
|
|
265
|
+
|
|
266
|
+
| Command | When to Use |
|
|
267
|
+
|---------|-------------|
|
|
268
|
+
| `/trellis:start` | Begin a session (this command) |
|
|
269
|
+
| `/trellis:finish-work` | Before committing changes |
|
|
270
|
+
| `/trellis:record-session` | After completing a task |
|
|
271
|
+
|
|
272
|
+
### AI Scripts `[AI]`
|
|
273
|
+
|
|
274
|
+
| Script | Purpose |
|
|
275
|
+
|--------|---------|
|
|
276
|
+
| `python3 ./.trellis/scripts/get_context.py` | Get session context |
|
|
277
|
+
| `python3 ./.trellis/scripts/task.py create` | Create task directory |
|
|
278
|
+
| `python3 ./.trellis/scripts/task.py init-context` | Initialize jsonl files |
|
|
279
|
+
| `python3 ./.trellis/scripts/task.py add-context` | Add spec to jsonl |
|
|
280
|
+
| `python3 ./.trellis/scripts/task.py start` | Set current task |
|
|
281
|
+
| `python3 ./.trellis/scripts/task.py finish` | Clear current task |
|
|
282
|
+
| `python3 ./.trellis/scripts/task.py archive` | Archive completed task |
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Key Principle
|
|
287
|
+
|
|
288
|
+
> **Specs are injected, not remembered.**
|
|
289
|
+
>
|
|
290
|
+
> The Task Workflow ensures agents receive relevant specs automatically.
|
|
291
|
+
> This is more reliable than hoping the AI "remembers" conventions.
|
|
292
|
+
"""
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
description = "Capture knowledge into spec documents after learning something valuable"
|
|
2
|
+
|
|
3
|
+
prompt = """
|
|
4
|
+
# Update Spec - Capture Knowledge into Specifications
|
|
5
|
+
|
|
6
|
+
When you learn something valuable (from debugging, implementing, or discussion), use this command to update the relevant spec documents.
|
|
7
|
+
|
|
8
|
+
**Timing**: After completing a task, fixing a bug, or discovering a new pattern
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## When to Update Specs
|
|
13
|
+
|
|
14
|
+
| Trigger | Example | Target Spec |
|
|
15
|
+
|---------|---------|-------------|
|
|
16
|
+
| **Implemented a feature** | Added template download with giget | Relevant `backend/` or `frontend/` file |
|
|
17
|
+
| **Made a design decision** | Used type field + mapping table for extensibility | Relevant spec + "Design Decisions" section |
|
|
18
|
+
| **Fixed a bug** | Found a subtle issue with error handling | `backend/error-handling.md` |
|
|
19
|
+
| **Discovered a pattern** | Found a better way to structure code | Relevant `backend/` or `frontend/` file |
|
|
20
|
+
| **Hit a gotcha** | Learned that X must be done before Y | Relevant spec + "Common Mistakes" section |
|
|
21
|
+
| **Established a convention** | Team agreed on naming pattern | `quality-guidelines.md` |
|
|
22
|
+
| **New thinking trigger** | "Don't forget to check X before doing Y" | `guides/*.md` (as a checklist item, not detailed rules) |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Spec Structure Overview
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
.trellis/spec/
|
|
30
|
+
+-- backend/ # Backend coding standards
|
|
31
|
+
| +-- index.md # Overview and links
|
|
32
|
+
| +-- *.md # Topic-specific guidelines
|
|
33
|
+
+-- frontend/ # Frontend coding standards
|
|
34
|
+
| +-- index.md # Overview and links
|
|
35
|
+
| +-- *.md # Topic-specific guidelines
|
|
36
|
+
+-- guides/ # Thinking checklists (NOT coding specs!)
|
|
37
|
+
+-- index.md # Guide index
|
|
38
|
+
+-- *.md # Topic-specific guides
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### CRITICAL: Spec vs Guide - Know the Difference
|
|
42
|
+
|
|
43
|
+
| Type | Location | Purpose | Content Style |
|
|
44
|
+
|------|----------|---------|---------------|
|
|
45
|
+
| **Spec** | `backend/*.md`, `frontend/*.md` | Tell AI "how to write code" | Detailed rules, code examples, forbidden patterns |
|
|
46
|
+
| **Guide** | `guides/*.md` | Help AI "what to think about" | Checklists, questions, pointers to specs |
|
|
47
|
+
|
|
48
|
+
**Decision Rule**: Ask yourself:
|
|
49
|
+
|
|
50
|
+
- "This is **how to write** the code" -> Put in `backend/` or `frontend/`
|
|
51
|
+
- "This is **what to consider** before writing" -> Put in `guides/`
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Update Process
|
|
56
|
+
|
|
57
|
+
### Step 1: Identify What You Learned
|
|
58
|
+
|
|
59
|
+
Answer these questions:
|
|
60
|
+
|
|
61
|
+
1. **What did you learn?** (Be specific)
|
|
62
|
+
2. **Why is it important?** (What problem does it prevent?)
|
|
63
|
+
3. **Where does it belong?** (Which spec file?)
|
|
64
|
+
|
|
65
|
+
### Step 2: Classify the Update Type
|
|
66
|
+
|
|
67
|
+
| Type | Description | Action |
|
|
68
|
+
|------|-------------|--------|
|
|
69
|
+
| **Design Decision** | Why we chose approach X over Y | Add to "Design Decisions" section |
|
|
70
|
+
| **Project Convention** | How we do X in this project | Add to relevant section with examples |
|
|
71
|
+
| **New Pattern** | A reusable approach discovered | Add to "Patterns" section |
|
|
72
|
+
| **Forbidden Pattern** | Something that causes problems | Add to "Anti-patterns" or "Don't" section |
|
|
73
|
+
| **Common Mistake** | Easy-to-make error | Add to "Common Mistakes" section |
|
|
74
|
+
| **Convention** | Agreed-upon standard | Add to relevant section |
|
|
75
|
+
| **Gotcha** | Non-obvious behavior | Add warning callout |
|
|
76
|
+
|
|
77
|
+
### Step 3: Read the Target Spec
|
|
78
|
+
|
|
79
|
+
Before editing, read the current spec to:
|
|
80
|
+
- Understand existing structure
|
|
81
|
+
- Avoid duplicating content
|
|
82
|
+
- Find the right section for your update
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
cat .trellis/spec/<category>/<file>.md
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Step 4: Make the Update
|
|
89
|
+
|
|
90
|
+
Follow these principles:
|
|
91
|
+
|
|
92
|
+
1. **Be Specific**: Include concrete examples, not just abstract rules
|
|
93
|
+
2. **Explain Why**: State the problem this prevents
|
|
94
|
+
3. **Show Code**: Add code snippets for patterns
|
|
95
|
+
4. **Keep it Short**: One concept per section
|
|
96
|
+
|
|
97
|
+
### Step 5: Update the Index (if needed)
|
|
98
|
+
|
|
99
|
+
If you added a new section or the spec status changed, update the category's `index.md`.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Quality Checklist
|
|
104
|
+
|
|
105
|
+
Before finishing your spec update:
|
|
106
|
+
|
|
107
|
+
- [ ] Is the content specific and actionable?
|
|
108
|
+
- [ ] Did you include a code example?
|
|
109
|
+
- [ ] Did you explain WHY, not just WHAT?
|
|
110
|
+
- [ ] Is it in the right spec file?
|
|
111
|
+
- [ ] Does it duplicate existing content?
|
|
112
|
+
- [ ] Would a new team member understand it?
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Relationship to Other Commands
|
|
117
|
+
|
|
118
|
+
- `/trellis:break-loop` - Analyzes bugs deeply, often reveals spec updates needed
|
|
119
|
+
- `/trellis:update-spec` - Actually makes the updates (this command)
|
|
120
|
+
- `/trellis:finish-work` - Reminds you to check if specs need updates
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Core Philosophy
|
|
125
|
+
|
|
126
|
+
> **Specs are living documents. Every debugging session, every "aha moment" is an opportunity to make the spec better.**
|
|
127
|
+
|
|
128
|
+
The goal is **institutional memory**:
|
|
129
|
+
- What one person learns, everyone benefits from
|
|
130
|
+
- What AI learns in one session, persists to future sessions
|
|
131
|
+
- Mistakes become documented guardrails
|
|
132
|
+
"""
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini CLI templates
|
|
3
|
+
*
|
|
4
|
+
* These are GENERIC templates for user projects.
|
|
5
|
+
* Do NOT use Trellis project's own .gemini/ directory (which may be customized).
|
|
6
|
+
*
|
|
7
|
+
* Directory structure:
|
|
8
|
+
* gemini/
|
|
9
|
+
* └── commands/trellis/ # Slash commands (.toml files)
|
|
10
|
+
*/
|
|
11
|
+
export interface CommandTemplate {
|
|
12
|
+
name: string;
|
|
13
|
+
content: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get all command templates.
|
|
17
|
+
* Gemini CLI uses TOML format (.toml) instead of Markdown.
|
|
18
|
+
* Commands are in commands/trellis/ subdirectory for namespace.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getAllCommands(): CommandTemplate[];
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/gemini/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqBH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,eAAe,EAAE,CAalD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini CLI templates
|
|
3
|
+
*
|
|
4
|
+
* These are GENERIC templates for user projects.
|
|
5
|
+
* Do NOT use Trellis project's own .gemini/ directory (which may be customized).
|
|
6
|
+
*
|
|
7
|
+
* Directory structure:
|
|
8
|
+
* gemini/
|
|
9
|
+
* └── commands/trellis/ # Slash commands (.toml files)
|
|
10
|
+
*/
|
|
11
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
12
|
+
import { dirname, join } from "node:path";
|
|
13
|
+
import { fileURLToPath } from "node:url";
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = dirname(__filename);
|
|
16
|
+
function readTemplate(relativePath) {
|
|
17
|
+
return readFileSync(join(__dirname, relativePath), "utf-8");
|
|
18
|
+
}
|
|
19
|
+
function listFiles(dir) {
|
|
20
|
+
try {
|
|
21
|
+
return readdirSync(join(__dirname, dir));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get all command templates.
|
|
29
|
+
* Gemini CLI uses TOML format (.toml) instead of Markdown.
|
|
30
|
+
* Commands are in commands/trellis/ subdirectory for namespace.
|
|
31
|
+
*/
|
|
32
|
+
export function getAllCommands() {
|
|
33
|
+
const commands = [];
|
|
34
|
+
const files = listFiles("commands/trellis");
|
|
35
|
+
for (const file of files) {
|
|
36
|
+
if (file.endsWith(".toml")) {
|
|
37
|
+
const name = file.replace(".toml", "");
|
|
38
|
+
const content = readTemplate(`commands/trellis/${file}`);
|
|
39
|
+
commands.push({ name, content });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return commands;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/gemini/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,SAAS,YAAY,CAAC,YAAoB;IACxC,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,YAAY,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: check
|
|
3
|
+
description: |
|
|
4
|
+
Code quality check expert. Reviews code changes against specs and self-fixes issues.
|
|
5
|
+
tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
|
|
6
|
+
color: orange
|
|
7
|
+
---
|
|
8
|
+
# Check Agent
|
|
9
|
+
|
|
10
|
+
You are the Check Agent in the Trellis workflow.
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
Before checking, read:
|
|
15
|
+
- `.trellis/spec/` - Development guidelines
|
|
16
|
+
- Pre-commit checklist for quality standards
|
|
17
|
+
|
|
18
|
+
## Core Responsibilities
|
|
19
|
+
|
|
20
|
+
1. **Get code changes** - Use git diff to get uncommitted code
|
|
21
|
+
2. **Check against specs** - Verify code follows guidelines
|
|
22
|
+
3. **Self-fix** - Fix issues yourself, not just report them
|
|
23
|
+
4. **Run verification** - typecheck and lint
|
|
24
|
+
|
|
25
|
+
## Important
|
|
26
|
+
|
|
27
|
+
**Fix issues yourself**, don't just report them.
|
|
28
|
+
|
|
29
|
+
You have write and edit tools, you can modify code directly.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
|
|
35
|
+
### Step 1: Get Changes
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
git diff --name-only # List changed files
|
|
39
|
+
git diff # View specific changes
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Step 2: Check Against Specs
|
|
43
|
+
|
|
44
|
+
Read relevant specs in `.trellis/spec/` to check code:
|
|
45
|
+
|
|
46
|
+
- Does it follow directory structure conventions
|
|
47
|
+
- Does it follow naming conventions
|
|
48
|
+
- Does it follow code patterns
|
|
49
|
+
- Are there missing types
|
|
50
|
+
- Are there potential bugs
|
|
51
|
+
|
|
52
|
+
### Step 3: Self-Fix
|
|
53
|
+
|
|
54
|
+
After finding issues:
|
|
55
|
+
|
|
56
|
+
1. Fix the issue directly (use edit tool)
|
|
57
|
+
2. Record what was fixed
|
|
58
|
+
3. Continue checking other issues
|
|
59
|
+
|
|
60
|
+
### Step 4: Run Verification
|
|
61
|
+
|
|
62
|
+
Run project's lint and typecheck commands to verify changes.
|
|
63
|
+
|
|
64
|
+
If failed, fix issues and re-run.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Completion Markers (Ralph Loop)
|
|
69
|
+
|
|
70
|
+
**CRITICAL**: You are in a loop controlled by the Ralph Loop system.
|
|
71
|
+
The loop will NOT stop until you output ALL required completion markers.
|
|
72
|
+
|
|
73
|
+
Completion markers are generated from `check.jsonl` in the task directory.
|
|
74
|
+
Each entry's `reason` field becomes a marker: `{REASON}_FINISH`
|
|
75
|
+
|
|
76
|
+
For example, if check.jsonl contains:
|
|
77
|
+
```json
|
|
78
|
+
{"file": "...", "reason": "TypeCheck"}
|
|
79
|
+
{"file": "...", "reason": "Lint"}
|
|
80
|
+
{"file": "...", "reason": "CodeReview"}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
You MUST output these markers when each check passes:
|
|
84
|
+
- `TYPECHECK_FINISH` - After typecheck passes
|
|
85
|
+
- `LINT_FINISH` - After lint passes
|
|
86
|
+
- `CODEREVIEW_FINISH` - After code review passes
|
|
87
|
+
|
|
88
|
+
If check.jsonl doesn't exist or has no reasons, output: `ALL_CHECKS_FINISH`
|
|
89
|
+
|
|
90
|
+
**The loop will block you from stopping until all markers are present in your output.**
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Report Format
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
## Self-Check Complete
|
|
98
|
+
|
|
99
|
+
### Files Checked
|
|
100
|
+
|
|
101
|
+
- src/components/Feature.tsx
|
|
102
|
+
- src/hooks/useFeature.ts
|
|
103
|
+
|
|
104
|
+
### Issues Found and Fixed
|
|
105
|
+
|
|
106
|
+
1. `<file>:<line>` - <what was fixed>
|
|
107
|
+
2. `<file>:<line>` - <what was fixed>
|
|
108
|
+
|
|
109
|
+
### Issues Not Fixed
|
|
110
|
+
|
|
111
|
+
(If there are issues that cannot be self-fixed, list them here with reasons)
|
|
112
|
+
|
|
113
|
+
### Verification Results
|
|
114
|
+
|
|
115
|
+
- TypeCheck: Passed TYPECHECK_FINISH
|
|
116
|
+
- Lint: Passed LINT_FINISH
|
|
117
|
+
|
|
118
|
+
### Summary
|
|
119
|
+
|
|
120
|
+
Checked X files, found Y issues, all fixed.
|
|
121
|
+
ALL_CHECKS_FINISH
|
|
122
|
+
```
|