cc-agentic-framework 1.14.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/README.md +686 -0
- package/bin/agentic-framework +2 -0
- package/bin/mcp-server +14 -0
- package/dist/__mocks__/chalk.d.ts +11 -0
- package/dist/__mocks__/chalk.d.ts.map +1 -0
- package/dist/__mocks__/chalk.js +20 -0
- package/dist/__mocks__/chalk.js.map +1 -0
- package/dist/__mocks__/ora.d.ts +20 -0
- package/dist/__mocks__/ora.d.ts.map +1 -0
- package/dist/__mocks__/ora.js +52 -0
- package/dist/__mocks__/ora.js.map +1 -0
- package/dist/commands/add.d.ts +6 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +105 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/agent/index.d.ts +11 -0
- package/dist/commands/agent/index.d.ts.map +1 -0
- package/dist/commands/agent/index.js +22 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/agent/list.d.ts +8 -0
- package/dist/commands/agent/list.d.ts.map +1 -0
- package/dist/commands/agent/list.js +53 -0
- package/dist/commands/agent/list.js.map +1 -0
- package/dist/commands/agent/run.d.ts +9 -0
- package/dist/commands/agent/run.d.ts.map +1 -0
- package/dist/commands/agent/run.js +180 -0
- package/dist/commands/agent/run.js.map +1 -0
- package/dist/commands/agent/show.d.ts +8 -0
- package/dist/commands/agent/show.d.ts.map +1 -0
- package/dist/commands/agent/show.js +109 -0
- package/dist/commands/agent/show.js.map +1 -0
- package/dist/commands/backlog/create-ticket.d.ts +19 -0
- package/dist/commands/backlog/create-ticket.d.ts.map +1 -0
- package/dist/commands/backlog/create-ticket.js +168 -0
- package/dist/commands/backlog/create-ticket.js.map +1 -0
- package/dist/commands/backlog/import-jira.d.ts +32 -0
- package/dist/commands/backlog/import-jira.d.ts.map +1 -0
- package/dist/commands/backlog/import-jira.js +126 -0
- package/dist/commands/backlog/import-jira.js.map +1 -0
- package/dist/commands/backlog/migrate-milestones.d.ts +21 -0
- package/dist/commands/backlog/migrate-milestones.d.ts.map +1 -0
- package/dist/commands/backlog/migrate-milestones.js +155 -0
- package/dist/commands/backlog/migrate-milestones.js.map +1 -0
- package/dist/commands/backlog/update-fields.d.ts +36 -0
- package/dist/commands/backlog/update-fields.d.ts.map +1 -0
- package/dist/commands/backlog/update-fields.js +251 -0
- package/dist/commands/backlog/update-fields.js.map +1 -0
- package/dist/commands/backlog/validate-enhanced.d.ts +19 -0
- package/dist/commands/backlog/validate-enhanced.d.ts.map +1 -0
- package/dist/commands/backlog/validate-enhanced.js +282 -0
- package/dist/commands/backlog/validate-enhanced.js.map +1 -0
- package/dist/commands/backlog/validate.d.ts +19 -0
- package/dist/commands/backlog/validate.d.ts.map +1 -0
- package/dist/commands/backlog/validate.js +283 -0
- package/dist/commands/backlog/validate.js.map +1 -0
- package/dist/commands/build.d.ts +20 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +116 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/bump-version.d.ts +61 -0
- package/dist/commands/bump-version.d.ts.map +1 -0
- package/dist/commands/bump-version.js +618 -0
- package/dist/commands/bump-version.js.map +1 -0
- package/dist/commands/confluence/create-page.d.ts +11 -0
- package/dist/commands/confluence/create-page.d.ts.map +1 -0
- package/dist/commands/confluence/create-page.js +72 -0
- package/dist/commands/confluence/create-page.js.map +1 -0
- package/dist/commands/confluence/fetch-page.d.ts +11 -0
- package/dist/commands/confluence/fetch-page.d.ts.map +1 -0
- package/dist/commands/confluence/fetch-page.js +64 -0
- package/dist/commands/confluence/fetch-page.js.map +1 -0
- package/dist/commands/confluence/import-reports.d.ts +12 -0
- package/dist/commands/confluence/import-reports.d.ts.map +1 -0
- package/dist/commands/confluence/import-reports.js +68 -0
- package/dist/commands/confluence/import-reports.js.map +1 -0
- package/dist/commands/confluence/validate.d.ts +23 -0
- package/dist/commands/confluence/validate.d.ts.map +1 -0
- package/dist/commands/confluence/validate.js +272 -0
- package/dist/commands/confluence/validate.js.map +1 -0
- package/dist/commands/create-agent.d.ts +8 -0
- package/dist/commands/create-agent.d.ts.map +1 -0
- package/dist/commands/create-agent.js +104 -0
- package/dist/commands/create-agent.js.map +1 -0
- package/dist/commands/create-module.d.ts +8 -0
- package/dist/commands/create-module.d.ts.map +1 -0
- package/dist/commands/create-module.js +123 -0
- package/dist/commands/create-module.js.map +1 -0
- package/dist/commands/create-skill.d.ts +8 -0
- package/dist/commands/create-skill.d.ts.map +1 -0
- package/dist/commands/create-skill.js +108 -0
- package/dist/commands/create-skill.js.map +1 -0
- package/dist/commands/dev.d.ts +21 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +304 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/generate-agents.d.ts +19 -0
- package/dist/commands/generate-agents.d.ts.map +1 -0
- package/dist/commands/generate-agents.js +146 -0
- package/dist/commands/generate-agents.js.map +1 -0
- package/dist/commands/generate-commands.d.ts +13 -0
- package/dist/commands/generate-commands.d.ts.map +1 -0
- package/dist/commands/generate-commands.js +229 -0
- package/dist/commands/generate-commands.js.map +1 -0
- package/dist/commands/info.d.ts +2 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +83 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.d.ts +27 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +740 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/jira/export.d.ts +19 -0
- package/dist/commands/jira/export.d.ts.map +1 -0
- package/dist/commands/jira/export.js +212 -0
- package/dist/commands/jira/export.js.map +1 -0
- package/dist/commands/jira/sync.d.ts +20 -0
- package/dist/commands/jira/sync.d.ts.map +1 -0
- package/dist/commands/jira/sync.js +242 -0
- package/dist/commands/jira/sync.js.map +1 -0
- package/dist/commands/list.d.ts +6 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +51 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/mcp/check.d.ts +11 -0
- package/dist/commands/mcp/check.d.ts.map +1 -0
- package/dist/commands/mcp/check.js +71 -0
- package/dist/commands/mcp/check.js.map +1 -0
- package/dist/commands/mcp/index.d.ts +15 -0
- package/dist/commands/mcp/index.d.ts.map +1 -0
- package/dist/commands/mcp/index.js +28 -0
- package/dist/commands/mcp/index.js.map +1 -0
- package/dist/commands/mcp/seed.d.ts +11 -0
- package/dist/commands/mcp/seed.d.ts.map +1 -0
- package/dist/commands/mcp/seed.js +222 -0
- package/dist/commands/mcp/seed.js.map +1 -0
- package/dist/commands/mcp/setup.d.ts +13 -0
- package/dist/commands/mcp/setup.d.ts.map +1 -0
- package/dist/commands/mcp/setup.js +387 -0
- package/dist/commands/mcp/setup.js.map +1 -0
- package/dist/commands/mcp/status.d.ts +11 -0
- package/dist/commands/mcp/status.d.ts.map +1 -0
- package/dist/commands/mcp/status.js +126 -0
- package/dist/commands/mcp/status.js.map +1 -0
- package/dist/commands/openclaw/export.d.ts +9 -0
- package/dist/commands/openclaw/export.d.ts.map +1 -0
- package/dist/commands/openclaw/export.js +72 -0
- package/dist/commands/openclaw/export.js.map +1 -0
- package/dist/commands/openclaw/index.d.ts +6 -0
- package/dist/commands/openclaw/index.d.ts.map +1 -0
- package/dist/commands/openclaw/index.js +11 -0
- package/dist/commands/openclaw/index.js.map +1 -0
- package/dist/commands/planning/create-plan.d.ts +21 -0
- package/dist/commands/planning/create-plan.d.ts.map +1 -0
- package/dist/commands/planning/create-plan.js +74 -0
- package/dist/commands/planning/create-plan.js.map +1 -0
- package/dist/commands/planning/validate-plan.d.ts +19 -0
- package/dist/commands/planning/validate-plan.d.ts.map +1 -0
- package/dist/commands/planning/validate-plan.js +276 -0
- package/dist/commands/planning/validate-plan.js.map +1 -0
- package/dist/commands/remove.d.ts +8 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +157 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/routes.d.ts +16 -0
- package/dist/commands/routes.d.ts.map +1 -0
- package/dist/commands/routes.js +153 -0
- package/dist/commands/routes.js.map +1 -0
- package/dist/commands/skill/deploy.d.ts +12 -0
- package/dist/commands/skill/deploy.d.ts.map +1 -0
- package/dist/commands/skill/deploy.js +327 -0
- package/dist/commands/skill/deploy.js.map +1 -0
- package/dist/commands/skill/index.d.ts +6 -0
- package/dist/commands/skill/index.d.ts.map +1 -0
- package/dist/commands/skill/index.js +20 -0
- package/dist/commands/skill/index.js.map +1 -0
- package/dist/commands/skill/info.d.ts +11 -0
- package/dist/commands/skill/info.d.ts.map +1 -0
- package/dist/commands/skill/info.js +260 -0
- package/dist/commands/skill/info.js.map +1 -0
- package/dist/commands/skill/list.d.ts +11 -0
- package/dist/commands/skill/list.d.ts.map +1 -0
- package/dist/commands/skill/list.js +242 -0
- package/dist/commands/skill/list.js.map +1 -0
- package/dist/commands/skill/pull.d.ts +12 -0
- package/dist/commands/skill/pull.d.ts.map +1 -0
- package/dist/commands/skill/pull.js +133 -0
- package/dist/commands/skill/pull.js.map +1 -0
- package/dist/commands/skill/remove.d.ts +12 -0
- package/dist/commands/skill/remove.d.ts.map +1 -0
- package/dist/commands/skill/remove.js +99 -0
- package/dist/commands/skill/remove.js.map +1 -0
- package/dist/commands/status.d.ts +11 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +195 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +20 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +517 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/template/index.d.ts +12 -0
- package/dist/commands/template/index.d.ts.map +1 -0
- package/dist/commands/template/index.js +24 -0
- package/dist/commands/template/index.js.map +1 -0
- package/dist/commands/template/info.d.ts +8 -0
- package/dist/commands/template/info.d.ts.map +1 -0
- package/dist/commands/template/info.js +125 -0
- package/dist/commands/template/info.js.map +1 -0
- package/dist/commands/template/list.d.ts +8 -0
- package/dist/commands/template/list.d.ts.map +1 -0
- package/dist/commands/template/list.js +77 -0
- package/dist/commands/template/list.js.map +1 -0
- package/dist/commands/template/render.d.ts +8 -0
- package/dist/commands/template/render.d.ts.map +1 -0
- package/dist/commands/template/render.js +115 -0
- package/dist/commands/template/render.js.map +1 -0
- package/dist/commands/template/validate.d.ts +8 -0
- package/dist/commands/template/validate.d.ts.map +1 -0
- package/dist/commands/template/validate.js +137 -0
- package/dist/commands/template/validate.js.map +1 -0
- package/dist/commands/test.d.ts +40 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +240 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/update.d.ts +12 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +248 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.d.ts +12 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +355 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/writer/analyze.d.ts +19 -0
- package/dist/commands/writer/analyze.d.ts.map +1 -0
- package/dist/commands/writer/analyze.js +210 -0
- package/dist/commands/writer/analyze.js.map +1 -0
- package/dist/commands/writer/build.d.ts +21 -0
- package/dist/commands/writer/build.d.ts.map +1 -0
- package/dist/commands/writer/build.js +241 -0
- package/dist/commands/writer/build.js.map +1 -0
- package/dist/commands/writer/create-chapter.d.ts +19 -0
- package/dist/commands/writer/create-chapter.d.ts.map +1 -0
- package/dist/commands/writer/create-chapter.js +260 -0
- package/dist/commands/writer/create-chapter.js.map +1 -0
- package/dist/commands/writer/create-character.d.ts +19 -0
- package/dist/commands/writer/create-character.d.ts.map +1 -0
- package/dist/commands/writer/create-character.js +263 -0
- package/dist/commands/writer/create-character.js.map +1 -0
- package/dist/commands/writer/create-part.d.ts +19 -0
- package/dist/commands/writer/create-part.d.ts.map +1 -0
- package/dist/commands/writer/create-part.js +239 -0
- package/dist/commands/writer/create-part.js.map +1 -0
- package/dist/commands/writer/create-scene.d.ts +19 -0
- package/dist/commands/writer/create-scene.d.ts.map +1 -0
- package/dist/commands/writer/create-scene.js +286 -0
- package/dist/commands/writer/create-scene.js.map +1 -0
- package/dist/commands/writer/export.d.ts +21 -0
- package/dist/commands/writer/export.d.ts.map +1 -0
- package/dist/commands/writer/export.js +230 -0
- package/dist/commands/writer/export.js.map +1 -0
- package/dist/commands/writer/init.d.ts +19 -0
- package/dist/commands/writer/init.d.ts.map +1 -0
- package/dist/commands/writer/init.js +227 -0
- package/dist/commands/writer/init.js.map +1 -0
- package/dist/commands/writer/lib/immutability-utils.d.ts +82 -0
- package/dist/commands/writer/lib/immutability-utils.d.ts.map +1 -0
- package/dist/commands/writer/lib/immutability-utils.js +253 -0
- package/dist/commands/writer/lib/immutability-utils.js.map +1 -0
- package/dist/commands/writer/lib/lock-utils.d.ts +48 -0
- package/dist/commands/writer/lib/lock-utils.d.ts.map +1 -0
- package/dist/commands/writer/lib/lock-utils.js +122 -0
- package/dist/commands/writer/lib/lock-utils.js.map +1 -0
- package/dist/commands/writer/lock-fact.d.ts +20 -0
- package/dist/commands/writer/lock-fact.d.ts.map +1 -0
- package/dist/commands/writer/lock-fact.js +174 -0
- package/dist/commands/writer/lock-fact.js.map +1 -0
- package/dist/commands/writer/unlock-fact.d.ts +20 -0
- package/dist/commands/writer/unlock-fact.d.ts.map +1 -0
- package/dist/commands/writer/unlock-fact.js +160 -0
- package/dist/commands/writer/unlock-fact.js.map +1 -0
- package/dist/commands/writer/validate-immutability.d.ts +19 -0
- package/dist/commands/writer/validate-immutability.d.ts.map +1 -0
- package/dist/commands/writer/validate-immutability.js +148 -0
- package/dist/commands/writer/validate-immutability.js.map +1 -0
- package/dist/commands/writer/validate.d.ts +20 -0
- package/dist/commands/writer/validate.d.ts.map +1 -0
- package/dist/commands/writer/validate.js +370 -0
- package/dist/commands/writer/validate.js.map +1 -0
- package/dist/hooks/claude-folder-protection.d.ts +23 -0
- package/dist/hooks/claude-folder-protection.d.ts.map +1 -0
- package/dist/hooks/claude-folder-protection.js +98 -0
- package/dist/hooks/claude-folder-protection.js.map +1 -0
- package/dist/hooks/index.d.ts +24 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +24 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/post-write-validate.d.ts +14 -0
- package/dist/hooks/post-write-validate.d.ts.map +1 -0
- package/dist/hooks/post-write-validate.js +142 -0
- package/dist/hooks/post-write-validate.js.map +1 -0
- package/dist/hooks/pre-commit-skill-reminder.d.ts +21 -0
- package/dist/hooks/pre-commit-skill-reminder.d.ts.map +1 -0
- package/dist/hooks/pre-commit-skill-reminder.js +142 -0
- package/dist/hooks/pre-commit-skill-reminder.js.map +1 -0
- package/dist/hooks/pre-write-quality.d.ts +14 -0
- package/dist/hooks/pre-write-quality.d.ts.map +1 -0
- package/dist/hooks/pre-write-quality.js +114 -0
- package/dist/hooks/pre-write-quality.js.map +1 -0
- package/dist/hooks/skill-reminder.d.ts +22 -0
- package/dist/hooks/skill-reminder.d.ts.map +1 -0
- package/dist/hooks/skill-reminder.js +285 -0
- package/dist/hooks/skill-reminder.js.map +1 -0
- package/dist/hooks/stop-quality-check.d.ts +14 -0
- package/dist/hooks/stop-quality-check.d.ts.map +1 -0
- package/dist/hooks/stop-quality-check.js +122 -0
- package/dist/hooks/stop-quality-check.js.map +1 -0
- package/dist/hooks/subagent-context-loader.d.ts +12 -0
- package/dist/hooks/subagent-context-loader.d.ts.map +1 -0
- package/dist/hooks/subagent-context-loader.js +124 -0
- package/dist/hooks/subagent-context-loader.js.map +1 -0
- package/dist/hooks/types.d.ts +89 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +57 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +256 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/affected-modules.d.ts +104 -0
- package/dist/lib/affected-modules.d.ts.map +1 -0
- package/dist/lib/affected-modules.js +283 -0
- package/dist/lib/affected-modules.js.map +1 -0
- package/dist/lib/agent-generator.d.ts +137 -0
- package/dist/lib/agent-generator.d.ts.map +1 -0
- package/dist/lib/agent-generator.js +274 -0
- package/dist/lib/agent-generator.js.map +1 -0
- package/dist/lib/backlog/__mocks__/prompt-utils.d.ts +5 -0
- package/dist/lib/backlog/__mocks__/prompt-utils.d.ts.map +1 -0
- package/dist/lib/backlog/__mocks__/prompt-utils.js +5 -0
- package/dist/lib/backlog/__mocks__/prompt-utils.js.map +1 -0
- package/dist/lib/backlog/content-parser.d.ts +83 -0
- package/dist/lib/backlog/content-parser.d.ts.map +1 -0
- package/dist/lib/backlog/content-parser.js +284 -0
- package/dist/lib/backlog/content-parser.js.map +1 -0
- package/dist/lib/backlog/csv-extractor.d.ts +87 -0
- package/dist/lib/backlog/csv-extractor.d.ts.map +1 -0
- package/dist/lib/backlog/csv-extractor.js +338 -0
- package/dist/lib/backlog/csv-extractor.js.map +1 -0
- package/dist/lib/backlog/epic-handler.d.ts +55 -0
- package/dist/lib/backlog/epic-handler.d.ts.map +1 -0
- package/dist/lib/backlog/epic-handler.js +222 -0
- package/dist/lib/backlog/epic-handler.js.map +1 -0
- package/dist/lib/backlog/field-updater.d.ts +195 -0
- package/dist/lib/backlog/field-updater.d.ts.map +1 -0
- package/dist/lib/backlog/field-updater.js +287 -0
- package/dist/lib/backlog/field-updater.js.map +1 -0
- package/dist/lib/backlog/import-engine.d.ts +110 -0
- package/dist/lib/backlog/import-engine.d.ts.map +1 -0
- package/dist/lib/backlog/import-engine.js +241 -0
- package/dist/lib/backlog/import-engine.js.map +1 -0
- package/dist/lib/backlog/import-strategies.d.ts +110 -0
- package/dist/lib/backlog/import-strategies.d.ts.map +1 -0
- package/dist/lib/backlog/import-strategies.js +398 -0
- package/dist/lib/backlog/import-strategies.js.map +1 -0
- package/dist/lib/backlog/jira-file-generators.d.ts +154 -0
- package/dist/lib/backlog/jira-file-generators.d.ts.map +1 -0
- package/dist/lib/backlog/jira-file-generators.js +265 -0
- package/dist/lib/backlog/jira-file-generators.js.map +1 -0
- package/dist/lib/backlog/jira-import-workflows.d.ts +112 -0
- package/dist/lib/backlog/jira-import-workflows.d.ts.map +1 -0
- package/dist/lib/backlog/jira-import-workflows.js +339 -0
- package/dist/lib/backlog/jira-import-workflows.js.map +1 -0
- package/dist/lib/backlog/jira-lookup.d.ts +121 -0
- package/dist/lib/backlog/jira-lookup.d.ts.map +1 -0
- package/dist/lib/backlog/jira-lookup.js +232 -0
- package/dist/lib/backlog/jira-lookup.js.map +1 -0
- package/dist/lib/backlog/jira-prompts.d.ts +66 -0
- package/dist/lib/backlog/jira-prompts.d.ts.map +1 -0
- package/dist/lib/backlog/jira-prompts.js +232 -0
- package/dist/lib/backlog/jira-prompts.js.map +1 -0
- package/dist/lib/backlog/jira-validators.d.ts +123 -0
- package/dist/lib/backlog/jira-validators.d.ts.map +1 -0
- package/dist/lib/backlog/jira-validators.js +394 -0
- package/dist/lib/backlog/jira-validators.js.map +1 -0
- package/dist/lib/backlog/milestone-generator.d.ts +172 -0
- package/dist/lib/backlog/milestone-generator.d.ts.map +1 -0
- package/dist/lib/backlog/milestone-generator.js +378 -0
- package/dist/lib/backlog/milestone-generator.js.map +1 -0
- package/dist/lib/backlog/milestone-migrator.d.ts +174 -0
- package/dist/lib/backlog/milestone-migrator.d.ts.map +1 -0
- package/dist/lib/backlog/milestone-migrator.js +401 -0
- package/dist/lib/backlog/milestone-migrator.js.map +1 -0
- package/dist/lib/backlog/milestone-sanitizer.d.ts +72 -0
- package/dist/lib/backlog/milestone-sanitizer.d.ts.map +1 -0
- package/dist/lib/backlog/milestone-sanitizer.js +139 -0
- package/dist/lib/backlog/milestone-sanitizer.js.map +1 -0
- package/dist/lib/backlog/prompt-utils.d.ts +9 -0
- package/dist/lib/backlog/prompt-utils.d.ts.map +1 -0
- package/dist/lib/backlog/prompt-utils.js +11 -0
- package/dist/lib/backlog/prompt-utils.js.map +1 -0
- package/dist/lib/backlog/sprint-creator.d.ts +145 -0
- package/dist/lib/backlog/sprint-creator.d.ts.map +1 -0
- package/dist/lib/backlog/sprint-creator.js +295 -0
- package/dist/lib/backlog/sprint-creator.js.map +1 -0
- package/dist/lib/backlog/ticket-generator.d.ts +79 -0
- package/dist/lib/backlog/ticket-generator.d.ts.map +1 -0
- package/dist/lib/backlog/ticket-generator.js +281 -0
- package/dist/lib/backlog/ticket-generator.js.map +1 -0
- package/dist/lib/backlog/ticket-processor.d.ts +205 -0
- package/dist/lib/backlog/ticket-processor.d.ts.map +1 -0
- package/dist/lib/backlog/ticket-processor.js +422 -0
- package/dist/lib/backlog/ticket-processor.js.map +1 -0
- package/dist/lib/backlog/types.d.ts +37 -0
- package/dist/lib/backlog/types.d.ts.map +1 -0
- package/dist/lib/backlog/types.js +7 -0
- package/dist/lib/backlog/types.js.map +1 -0
- package/dist/lib/backlog/validator.d.ts +61 -0
- package/dist/lib/backlog/validator.d.ts.map +1 -0
- package/dist/lib/backlog/validator.js +285 -0
- package/dist/lib/backlog/validator.js.map +1 -0
- package/dist/lib/boundary-validator.d.ts +88 -0
- package/dist/lib/boundary-validator.d.ts.map +1 -0
- package/dist/lib/boundary-validator.js +494 -0
- package/dist/lib/boundary-validator.js.map +1 -0
- package/dist/lib/build/build-engine.d.ts +142 -0
- package/dist/lib/build/build-engine.d.ts.map +1 -0
- package/dist/lib/build/build-engine.js +487 -0
- package/dist/lib/build/build-engine.js.map +1 -0
- package/dist/lib/build/index.d.ts +7 -0
- package/dist/lib/build/index.d.ts.map +1 -0
- package/dist/lib/build/index.js +7 -0
- package/dist/lib/build/index.js.map +1 -0
- package/dist/lib/cleanup-engine.d.ts +121 -0
- package/dist/lib/cleanup-engine.d.ts.map +1 -0
- package/dist/lib/cleanup-engine.js +252 -0
- package/dist/lib/cleanup-engine.js.map +1 -0
- package/dist/lib/cli-context.d.ts +283 -0
- package/dist/lib/cli-context.d.ts.map +1 -0
- package/dist/lib/cli-context.js +403 -0
- package/dist/lib/cli-context.js.map +1 -0
- package/dist/lib/cli-version.d.ts +7 -0
- package/dist/lib/cli-version.d.ts.map +1 -0
- package/dist/lib/cli-version.js +30 -0
- package/dist/lib/cli-version.js.map +1 -0
- package/dist/lib/command-factory.d.ts +76 -0
- package/dist/lib/command-factory.d.ts.map +1 -0
- package/dist/lib/command-factory.js +166 -0
- package/dist/lib/command-factory.js.map +1 -0
- package/dist/lib/common/api-client.d.ts +92 -0
- package/dist/lib/common/api-client.d.ts.map +1 -0
- package/dist/lib/common/api-client.js +206 -0
- package/dist/lib/common/api-client.js.map +1 -0
- package/dist/lib/common/file-utils.d.ts +92 -0
- package/dist/lib/common/file-utils.d.ts.map +1 -0
- package/dist/lib/common/file-utils.js +143 -0
- package/dist/lib/common/file-utils.js.map +1 -0
- package/dist/lib/common/validation.d.ts +91 -0
- package/dist/lib/common/validation.d.ts.map +1 -0
- package/dist/lib/common/validation.js +213 -0
- package/dist/lib/common/validation.js.map +1 -0
- package/dist/lib/common/yaml-frontmatter.d.ts +76 -0
- package/dist/lib/common/yaml-frontmatter.d.ts.map +1 -0
- package/dist/lib/common/yaml-frontmatter.js +89 -0
- package/dist/lib/common/yaml-frontmatter.js.map +1 -0
- package/dist/lib/confluence/adf-converter.d.ts +30 -0
- package/dist/lib/confluence/adf-converter.d.ts.map +1 -0
- package/dist/lib/confluence/adf-converter.js +649 -0
- package/dist/lib/confluence/adf-converter.js.map +1 -0
- package/dist/lib/confluence/confluence-client.d.ts +121 -0
- package/dist/lib/confluence/confluence-client.d.ts.map +1 -0
- package/dist/lib/confluence/confluence-client.js +249 -0
- package/dist/lib/confluence/confluence-client.js.map +1 -0
- package/dist/lib/confluence/confluence-commands.d.ts +58 -0
- package/dist/lib/confluence/confluence-commands.d.ts.map +1 -0
- package/dist/lib/confluence/confluence-commands.js +231 -0
- package/dist/lib/confluence/confluence-commands.js.map +1 -0
- package/dist/lib/discovery-engine.d.ts +159 -0
- package/dist/lib/discovery-engine.d.ts.map +1 -0
- package/dist/lib/discovery-engine.js +538 -0
- package/dist/lib/discovery-engine.js.map +1 -0
- package/dist/lib/framework-validator.d.ts +81 -0
- package/dist/lib/framework-validator.d.ts.map +1 -0
- package/dist/lib/framework-validator.js +546 -0
- package/dist/lib/framework-validator.js.map +1 -0
- package/dist/lib/global-skills-manager.d.ts +90 -0
- package/dist/lib/global-skills-manager.d.ts.map +1 -0
- package/dist/lib/global-skills-manager.js +180 -0
- package/dist/lib/global-skills-manager.js.map +1 -0
- package/dist/lib/jira/acceptance-criteria.d.ts +76 -0
- package/dist/lib/jira/acceptance-criteria.d.ts.map +1 -0
- package/dist/lib/jira/acceptance-criteria.js +163 -0
- package/dist/lib/jira/acceptance-criteria.js.map +1 -0
- package/dist/lib/jira/export-engine.d.ts +132 -0
- package/dist/lib/jira/export-engine.d.ts.map +1 -0
- package/dist/lib/jira/export-engine.js +332 -0
- package/dist/lib/jira/export-engine.js.map +1 -0
- package/dist/lib/jira/field-mapper.d.ts +101 -0
- package/dist/lib/jira/field-mapper.d.ts.map +1 -0
- package/dist/lib/jira/field-mapper.js +346 -0
- package/dist/lib/jira/field-mapper.js.map +1 -0
- package/dist/lib/jira/jira-client.d.ts +117 -0
- package/dist/lib/jira/jira-client.d.ts.map +1 -0
- package/dist/lib/jira/jira-client.js +255 -0
- package/dist/lib/jira/jira-client.js.map +1 -0
- package/dist/lib/jira/sync-engine.d.ts +154 -0
- package/dist/lib/jira/sync-engine.d.ts.map +1 -0
- package/dist/lib/jira/sync-engine.js +420 -0
- package/dist/lib/jira/sync-engine.js.map +1 -0
- package/dist/lib/jira/wiki-converter.d.ts +133 -0
- package/dist/lib/jira/wiki-converter.d.ts.map +1 -0
- package/dist/lib/jira/wiki-converter.js +245 -0
- package/dist/lib/jira/wiki-converter.js.map +1 -0
- package/dist/lib/link-transformer.d.ts +176 -0
- package/dist/lib/link-transformer.d.ts.map +1 -0
- package/dist/lib/link-transformer.js +349 -0
- package/dist/lib/link-transformer.js.map +1 -0
- package/dist/lib/link-validator.d.ts +232 -0
- package/dist/lib/link-validator.d.ts.map +1 -0
- package/dist/lib/link-validator.js +504 -0
- package/dist/lib/link-validator.js.map +1 -0
- package/dist/lib/manifest-manager.d.ts +112 -0
- package/dist/lib/manifest-manager.d.ts.map +1 -0
- package/dist/lib/manifest-manager.js +153 -0
- package/dist/lib/manifest-manager.js.map +1 -0
- package/dist/lib/mcp/extractors/framework-project.d.ts +29 -0
- package/dist/lib/mcp/extractors/framework-project.d.ts.map +1 -0
- package/dist/lib/mcp/extractors/framework-project.js +402 -0
- package/dist/lib/mcp/extractors/framework-project.js.map +1 -0
- package/dist/lib/mcp/extractors/generic-project.d.ts +25 -0
- package/dist/lib/mcp/extractors/generic-project.d.ts.map +1 -0
- package/dist/lib/mcp/extractors/generic-project.js +344 -0
- package/dist/lib/mcp/extractors/generic-project.js.map +1 -0
- package/dist/lib/mcp/extractors/index.d.ts +48 -0
- package/dist/lib/mcp/extractors/index.d.ts.map +1 -0
- package/dist/lib/mcp/extractors/index.js +28 -0
- package/dist/lib/mcp/extractors/index.js.map +1 -0
- package/dist/lib/mcp/index.d.ts +11 -0
- package/dist/lib/mcp/index.d.ts.map +1 -0
- package/dist/lib/mcp/index.js +11 -0
- package/dist/lib/mcp/index.js.map +1 -0
- package/dist/lib/mcp/install-instructions.d.ts +39 -0
- package/dist/lib/mcp/install-instructions.d.ts.map +1 -0
- package/dist/lib/mcp/install-instructions.js +317 -0
- package/dist/lib/mcp/install-instructions.js.map +1 -0
- package/dist/lib/mcp/prerequisite-checker.d.ts +79 -0
- package/dist/lib/mcp/prerequisite-checker.d.ts.map +1 -0
- package/dist/lib/mcp/prerequisite-checker.js +213 -0
- package/dist/lib/mcp/prerequisite-checker.js.map +1 -0
- package/dist/lib/module-loader.d.ts +77 -0
- package/dist/lib/module-loader.d.ts.map +1 -0
- package/dist/lib/module-loader.js +135 -0
- package/dist/lib/module-loader.js.map +1 -0
- package/dist/lib/path-resolver.d.ts +160 -0
- package/dist/lib/path-resolver.d.ts.map +1 -0
- package/dist/lib/path-resolver.js +205 -0
- package/dist/lib/path-resolver.js.map +1 -0
- package/dist/lib/planning/plan-creator.d.ts +132 -0
- package/dist/lib/planning/plan-creator.d.ts.map +1 -0
- package/dist/lib/planning/plan-creator.js +361 -0
- package/dist/lib/planning/plan-creator.js.map +1 -0
- package/dist/lib/project-resolver.d.ts +124 -0
- package/dist/lib/project-resolver.d.ts.map +1 -0
- package/dist/lib/project-resolver.js +362 -0
- package/dist/lib/project-resolver.js.map +1 -0
- package/dist/lib/registry-generator.d.ts +11 -0
- package/dist/lib/registry-generator.d.ts.map +1 -0
- package/dist/lib/registry-generator.js +288 -0
- package/dist/lib/registry-generator.js.map +1 -0
- package/dist/lib/routes-validator.d.ts +50 -0
- package/dist/lib/routes-validator.d.ts.map +1 -0
- package/dist/lib/routes-validator.js +260 -0
- package/dist/lib/routes-validator.js.map +1 -0
- package/dist/lib/schemas/agent.schema.d.ts +175 -0
- package/dist/lib/schemas/agent.schema.d.ts.map +1 -0
- package/dist/lib/schemas/agent.schema.js +86 -0
- package/dist/lib/schemas/agent.schema.js.map +1 -0
- package/dist/lib/schemas/index.d.ts +13 -0
- package/dist/lib/schemas/index.d.ts.map +1 -0
- package/dist/lib/schemas/index.js +13 -0
- package/dist/lib/schemas/index.js.map +1 -0
- package/dist/lib/schemas/skill.schema.d.ts +92 -0
- package/dist/lib/schemas/skill.schema.d.ts.map +1 -0
- package/dist/lib/schemas/skill.schema.js +98 -0
- package/dist/lib/schemas/skill.schema.js.map +1 -0
- package/dist/lib/sdk/executor.d.ts +37 -0
- package/dist/lib/sdk/executor.d.ts.map +1 -0
- package/dist/lib/sdk/executor.js +137 -0
- package/dist/lib/sdk/executor.js.map +1 -0
- package/dist/lib/sdk/generator.d.ts +79 -0
- package/dist/lib/sdk/generator.d.ts.map +1 -0
- package/dist/lib/sdk/generator.js +316 -0
- package/dist/lib/sdk/generator.js.map +1 -0
- package/dist/lib/sdk/index.d.ts +12 -0
- package/dist/lib/sdk/index.d.ts.map +1 -0
- package/dist/lib/sdk/index.js +15 -0
- package/dist/lib/sdk/index.js.map +1 -0
- package/dist/lib/sdk/message-handler.d.ts +40 -0
- package/dist/lib/sdk/message-handler.d.ts.map +1 -0
- package/dist/lib/sdk/message-handler.js +215 -0
- package/dist/lib/sdk/message-handler.js.map +1 -0
- package/dist/lib/sdk/sub-agents.d.ts +51 -0
- package/dist/lib/sdk/sub-agents.d.ts.map +1 -0
- package/dist/lib/sdk/sub-agents.js +234 -0
- package/dist/lib/sdk/sub-agents.js.map +1 -0
- package/dist/lib/sdk/types.d.ts +169 -0
- package/dist/lib/sdk/types.d.ts.map +1 -0
- package/dist/lib/sdk/types.js +7 -0
- package/dist/lib/sdk/types.js.map +1 -0
- package/dist/lib/skill-cli-parser.d.ts +79 -0
- package/dist/lib/skill-cli-parser.d.ts.map +1 -0
- package/dist/lib/skill-cli-parser.js +172 -0
- package/dist/lib/skill-cli-parser.js.map +1 -0
- package/dist/lib/skill-template-engine.d.ts +116 -0
- package/dist/lib/skill-template-engine.d.ts.map +1 -0
- package/dist/lib/skill-template-engine.js +220 -0
- package/dist/lib/skill-template-engine.js.map +1 -0
- package/dist/lib/sync-engine.d.ts +344 -0
- package/dist/lib/sync-engine.d.ts.map +1 -0
- package/dist/lib/sync-engine.js +1255 -0
- package/dist/lib/sync-engine.js.map +1 -0
- package/dist/lib/telemetry/config.d.ts +22 -0
- package/dist/lib/telemetry/config.d.ts.map +1 -0
- package/dist/lib/telemetry/config.js +210 -0
- package/dist/lib/telemetry/config.js.map +1 -0
- package/dist/lib/telemetry/exporters/console-exporter.d.ts +72 -0
- package/dist/lib/telemetry/exporters/console-exporter.d.ts.map +1 -0
- package/dist/lib/telemetry/exporters/console-exporter.js +228 -0
- package/dist/lib/telemetry/exporters/console-exporter.js.map +1 -0
- package/dist/lib/telemetry/exporters/json-file-exporter.d.ts +48 -0
- package/dist/lib/telemetry/exporters/json-file-exporter.d.ts.map +1 -0
- package/dist/lib/telemetry/exporters/json-file-exporter.js +202 -0
- package/dist/lib/telemetry/exporters/json-file-exporter.js.map +1 -0
- package/dist/lib/telemetry/exporters/otel-exporter.d.ts +48 -0
- package/dist/lib/telemetry/exporters/otel-exporter.d.ts.map +1 -0
- package/dist/lib/telemetry/exporters/otel-exporter.js +299 -0
- package/dist/lib/telemetry/exporters/otel-exporter.js.map +1 -0
- package/dist/lib/telemetry/exporters/session-file-exporter.d.ts +66 -0
- package/dist/lib/telemetry/exporters/session-file-exporter.d.ts.map +1 -0
- package/dist/lib/telemetry/exporters/session-file-exporter.js +223 -0
- package/dist/lib/telemetry/exporters/session-file-exporter.js.map +1 -0
- package/dist/lib/telemetry/index.d.ts +44 -0
- package/dist/lib/telemetry/index.d.ts.map +1 -0
- package/dist/lib/telemetry/index.js +69 -0
- package/dist/lib/telemetry/index.js.map +1 -0
- package/dist/lib/telemetry/instrumentation/cli-instrumentation.d.ts +25 -0
- package/dist/lib/telemetry/instrumentation/cli-instrumentation.d.ts.map +1 -0
- package/dist/lib/telemetry/instrumentation/cli-instrumentation.js +83 -0
- package/dist/lib/telemetry/instrumentation/cli-instrumentation.js.map +1 -0
- package/dist/lib/telemetry/instrumentation/discovery-instrumentation.d.ts +21 -0
- package/dist/lib/telemetry/instrumentation/discovery-instrumentation.d.ts.map +1 -0
- package/dist/lib/telemetry/instrumentation/discovery-instrumentation.js +78 -0
- package/dist/lib/telemetry/instrumentation/discovery-instrumentation.js.map +1 -0
- package/dist/lib/telemetry/instrumentation/mcp-instrumentation.d.ts +76 -0
- package/dist/lib/telemetry/instrumentation/mcp-instrumentation.d.ts.map +1 -0
- package/dist/lib/telemetry/instrumentation/mcp-instrumentation.js +168 -0
- package/dist/lib/telemetry/instrumentation/mcp-instrumentation.js.map +1 -0
- package/dist/lib/telemetry/instrumentation/sync-instrumentation.d.ts +25 -0
- package/dist/lib/telemetry/instrumentation/sync-instrumentation.d.ts.map +1 -0
- package/dist/lib/telemetry/instrumentation/sync-instrumentation.js +51 -0
- package/dist/lib/telemetry/instrumentation/sync-instrumentation.js.map +1 -0
- package/dist/lib/telemetry/session-context.d.ts +109 -0
- package/dist/lib/telemetry/session-context.d.ts.map +1 -0
- package/dist/lib/telemetry/session-context.js +170 -0
- package/dist/lib/telemetry/session-context.js.map +1 -0
- package/dist/lib/telemetry/telemetry-manager.d.ts +88 -0
- package/dist/lib/telemetry/telemetry-manager.d.ts.map +1 -0
- package/dist/lib/telemetry/telemetry-manager.js +347 -0
- package/dist/lib/telemetry/telemetry-manager.js.map +1 -0
- package/dist/lib/telemetry/types.d.ts +302 -0
- package/dist/lib/telemetry/types.d.ts.map +1 -0
- package/dist/lib/telemetry/types.js +6 -0
- package/dist/lib/telemetry/types.js.map +1 -0
- package/dist/lib/template-engine.d.ts +5 -0
- package/dist/lib/template-engine.d.ts.map +1 -0
- package/dist/lib/template-engine.js +294 -0
- package/dist/lib/template-engine.js.map +1 -0
- package/dist/lib/unified-template-engine/computed-variables.d.ts +38 -0
- package/dist/lib/unified-template-engine/computed-variables.d.ts.map +1 -0
- package/dist/lib/unified-template-engine/computed-variables.js +85 -0
- package/dist/lib/unified-template-engine/computed-variables.js.map +1 -0
- package/dist/lib/unified-template-engine/index.d.ts +67 -0
- package/dist/lib/unified-template-engine/index.d.ts.map +1 -0
- package/dist/lib/unified-template-engine/index.js +200 -0
- package/dist/lib/unified-template-engine/index.js.map +1 -0
- package/dist/lib/unified-template-engine/resolver.d.ts +63 -0
- package/dist/lib/unified-template-engine/resolver.d.ts.map +1 -0
- package/dist/lib/unified-template-engine/resolver.js +312 -0
- package/dist/lib/unified-template-engine/resolver.js.map +1 -0
- package/dist/lib/unified-template-engine/types.d.ts +177 -0
- package/dist/lib/unified-template-engine/types.d.ts.map +1 -0
- package/dist/lib/unified-template-engine/types.js +7 -0
- package/dist/lib/unified-template-engine/types.js.map +1 -0
- package/dist/lib/unified-template-engine/validator.d.ts +23 -0
- package/dist/lib/unified-template-engine/validator.d.ts.map +1 -0
- package/dist/lib/unified-template-engine/validator.js +217 -0
- package/dist/lib/unified-template-engine/validator.js.map +1 -0
- package/dist/lib/validation/rules/plan-rules.d.ts +48 -0
- package/dist/lib/validation/rules/plan-rules.d.ts.map +1 -0
- package/dist/lib/validation/rules/plan-rules.js +152 -0
- package/dist/lib/validation/rules/plan-rules.js.map +1 -0
- package/dist/lib/validation/rules/ticket-rules.d.ts +54 -0
- package/dist/lib/validation/rules/ticket-rules.d.ts.map +1 -0
- package/dist/lib/validation/rules/ticket-rules.js +136 -0
- package/dist/lib/validation/rules/ticket-rules.js.map +1 -0
- package/dist/lib/validation/schema-validator.d.ts +26 -0
- package/dist/lib/validation/schema-validator.d.ts.map +1 -0
- package/dist/lib/validation/schema-validator.js +183 -0
- package/dist/lib/validation/schema-validator.js.map +1 -0
- package/dist/lib/validation/validation-report.d.ts +68 -0
- package/dist/lib/validation/validation-report.d.ts.map +1 -0
- package/dist/lib/validation/validation-report.js +141 -0
- package/dist/lib/validation/validation-report.js.map +1 -0
- package/dist/lib/version-validator.d.ts +89 -0
- package/dist/lib/version-validator.d.ts.map +1 -0
- package/dist/lib/version-validator.js +178 -0
- package/dist/lib/version-validator.js.map +1 -0
- package/dist/lib/wizard/detection.d.ts +48 -0
- package/dist/lib/wizard/detection.d.ts.map +1 -0
- package/dist/lib/wizard/detection.js +116 -0
- package/dist/lib/wizard/detection.js.map +1 -0
- package/dist/lib/wizard/file-handlers.d.ts +40 -0
- package/dist/lib/wizard/file-handlers.d.ts.map +1 -0
- package/dist/lib/wizard/file-handlers.js +204 -0
- package/dist/lib/wizard/file-handlers.js.map +1 -0
- package/dist/lib/wizard/index.d.ts +9 -0
- package/dist/lib/wizard/index.d.ts.map +1 -0
- package/dist/lib/wizard/index.js +9 -0
- package/dist/lib/wizard/index.js.map +1 -0
- package/dist/lib/wizard/init-wizard.d.ts +35 -0
- package/dist/lib/wizard/init-wizard.d.ts.map +1 -0
- package/dist/lib/wizard/init-wizard.js +86 -0
- package/dist/lib/wizard/init-wizard.js.map +1 -0
- package/dist/lib/wizard/module-groups.d.ts +55 -0
- package/dist/lib/wizard/module-groups.d.ts.map +1 -0
- package/dist/lib/wizard/module-groups.js +128 -0
- package/dist/lib/wizard/module-groups.js.map +1 -0
- package/dist/lib/wizard/prompts.d.ts +36 -0
- package/dist/lib/wizard/prompts.d.ts.map +1 -0
- package/dist/lib/wizard/prompts.js +253 -0
- package/dist/lib/wizard/prompts.js.map +1 -0
- package/dist/lib/wizard/summary.d.ts +45 -0
- package/dist/lib/wizard/summary.d.ts.map +1 -0
- package/dist/lib/wizard/summary.js +162 -0
- package/dist/lib/wizard/summary.js.map +1 -0
- package/dist/mcp/index.d.ts +15 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +75 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/result-formatter.d.ts +68 -0
- package/dist/mcp/result-formatter.d.ts.map +1 -0
- package/dist/mcp/result-formatter.js +191 -0
- package/dist/mcp/result-formatter.js.map +1 -0
- package/dist/mcp/tool-registry.d.ts +70 -0
- package/dist/mcp/tool-registry.d.ts.map +1 -0
- package/dist/mcp/tool-registry.js +183 -0
- package/dist/mcp/tool-registry.js.map +1 -0
- package/dist/mcp/tools/agent.d.ts +22 -0
- package/dist/mcp/tools/agent.d.ts.map +1 -0
- package/dist/mcp/tools/agent.js +267 -0
- package/dist/mcp/tools/agent.js.map +1 -0
- package/dist/mcp/tools/backlog.d.ts +15 -0
- package/dist/mcp/tools/backlog.d.ts.map +1 -0
- package/dist/mcp/tools/backlog.js +355 -0
- package/dist/mcp/tools/backlog.js.map +1 -0
- package/dist/mcp/tools/confluence.d.ts +32 -0
- package/dist/mcp/tools/confluence.d.ts.map +1 -0
- package/dist/mcp/tools/confluence.js +367 -0
- package/dist/mcp/tools/confluence.js.map +1 -0
- package/dist/mcp/tools/create.d.ts +22 -0
- package/dist/mcp/tools/create.d.ts.map +1 -0
- package/dist/mcp/tools/create.js +311 -0
- package/dist/mcp/tools/create.js.map +1 -0
- package/dist/mcp/tools/framework.d.ts +24 -0
- package/dist/mcp/tools/framework.d.ts.map +1 -0
- package/dist/mcp/tools/framework.js +430 -0
- package/dist/mcp/tools/framework.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +32 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +58 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/jira.d.ts +12 -0
- package/dist/mcp/tools/jira.d.ts.map +1 -0
- package/dist/mcp/tools/jira.js +206 -0
- package/dist/mcp/tools/jira.js.map +1 -0
- package/dist/mcp/tools/planning.d.ts +22 -0
- package/dist/mcp/tools/planning.d.ts.map +1 -0
- package/dist/mcp/tools/planning.js +264 -0
- package/dist/mcp/tools/planning.js.map +1 -0
- package/dist/mcp/tools/skill.d.ts +42 -0
- package/dist/mcp/tools/skill.d.ts.map +1 -0
- package/dist/mcp/tools/skill.js +561 -0
- package/dist/mcp/tools/skill.js.map +1 -0
- package/dist/mcp/tools/template.d.ts +36 -0
- package/dist/mcp/tools/template.d.ts.map +1 -0
- package/dist/mcp/tools/template.js +354 -0
- package/dist/mcp/tools/template.js.map +1 -0
- package/dist/mcp/tools/writer.d.ts +23 -0
- package/dist/mcp/tools/writer.d.ts.map +1 -0
- package/dist/mcp/tools/writer.js +394 -0
- package/dist/mcp/tools/writer.js.map +1 -0
- package/dist/mcp/types.d.ts +102 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +37 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/templates/index.d.ts +11 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +11 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/mcp-hooks.d.ts +37 -0
- package/dist/templates/mcp-hooks.d.ts.map +1 -0
- package/dist/templates/mcp-hooks.js +224 -0
- package/dist/templates/mcp-hooks.js.map +1 -0
- package/dist/templates/serena-project.d.ts +14 -0
- package/dist/templates/serena-project.d.ts.map +1 -0
- package/dist/templates/serena-project.js +105 -0
- package/dist/templates/serena-project.js.map +1 -0
- package/dist/templates/settings-json.d.ts +28 -0
- package/dist/templates/settings-json.d.ts.map +1 -0
- package/dist/templates/settings-json.js +190 -0
- package/dist/templates/settings-json.js.map +1 -0
- package/dist/templates/settings-local.d.ts +69 -0
- package/dist/templates/settings-local.d.ts.map +1 -0
- package/dist/templates/settings-local.js +56 -0
- package/dist/templates/settings-local.js.map +1 -0
- package/dist/templates/statusline.d.ts +7 -0
- package/dist/templates/statusline.d.ts.map +1 -0
- package/dist/templates/statusline.js +260 -0
- package/dist/templates/statusline.js.map +1 -0
- package/dist/types/command-options.d.ts +392 -0
- package/dist/types/command-options.d.ts.map +1 -0
- package/dist/types/command-options.js +15 -0
- package/dist/types/command-options.js.map +1 -0
- package/framework/modules/backlog/agents/ai-backlog-manager.md +430 -0
- package/framework/modules/backlog/commands/cmd-backlog-create-ticket.md +42 -0
- package/framework/modules/backlog/commands/cmd-backlog-import.md +42 -0
- package/framework/modules/backlog/commands/cmd-backlog-migrate-milestones.md +42 -0
- package/framework/modules/backlog/commands/cmd-backlog-update-fields.md +42 -0
- package/framework/modules/backlog/commands/cmd-backlog-validate.md +42 -0
- package/framework/modules/backlog/module.json +82 -0
- package/framework/modules/backlog/schemas/ticket.schema.json +143 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/BODY-STRUCTURE.md +470 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/EXAMPLES.md +561 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/SKILL.md +293 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/VALIDATION-RULES.md +748 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/YAML-STRUCTURE.md +439 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/templates/bug.template.md +83 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/templates/epic.template.md +96 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/templates/story.template.md +68 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/templates/task.template.md +66 -0
- package/framework/modules/backlog/skills/backlog/building-tickets/templates/template.config.json +50 -0
- package/framework/modules/backlog/skills/backlog/organizing-backlog/DIRECTORY-STRUCTURE.md +195 -0
- package/framework/modules/backlog/skills/backlog/organizing-backlog/EXAMPLES.md +374 -0
- package/framework/modules/backlog/skills/backlog/organizing-backlog/JIRA-SOURCE-OF-TRUTH.md +384 -0
- package/framework/modules/backlog/skills/backlog/organizing-backlog/NAMING-CONVENTIONS.md +230 -0
- package/framework/modules/backlog/skills/backlog/organizing-backlog/SKILL.md +332 -0
- package/framework/modules/backlog/skills/backlog/organizing-backlog/WORKFLOW-PIPELINE.md +298 -0
- package/framework/modules/backlog/templates/ticket.md.template +111 -0
- package/framework/modules/coding/agents/ai-app-developer.md +275 -0
- package/framework/modules/coding/agents/ai-architect.md +454 -0
- package/framework/modules/coding/agents/ai-hig-reviewer.md +69 -0
- package/framework/modules/coding/agents/ai-ios-developer.md +303 -0
- package/framework/modules/coding/module.json +56 -0
- package/framework/modules/coding/skills/coding/designing-architecture/SKILL.md +475 -0
- package/framework/modules/coding/skills/coding/designing-ios-ui/SKILL.md +405 -0
- package/framework/modules/coding/skills/coding/implementing-code/EXAMPLES.md +565 -0
- package/framework/modules/coding/skills/coding/implementing-code/SKILL.md +490 -0
- package/framework/modules/coding/skills/coding/implementing-ios/ANTI-PATTERNS.md +564 -0
- package/framework/modules/coding/skills/coding/implementing-ios/ARCHITECTURE-PATTERNS.md +539 -0
- package/framework/modules/coding/skills/coding/implementing-ios/HIG-COMPLIANCE.md +492 -0
- package/framework/modules/coding/skills/coding/implementing-ios/SKILL.md +506 -0
- package/framework/modules/coding/skills/coding/implementing-ios/SWIFTUI-PATTERNS.md +625 -0
- package/framework/modules/coding/skills/coding/implementing-ios/TESTING-PATTERNS.md +625 -0
- package/framework/modules/coding/skills/coding/implementing-ios/UIKIT-PATTERNS.md +470 -0
- package/framework/modules/coding/skills/coding/structuring-code/CHECKLISTS.md +151 -0
- package/framework/modules/coding/skills/coding/structuring-code/DRY-PRINCIPLES.md +285 -0
- package/framework/modules/coding/skills/coding/structuring-code/FILE-ORGANIZATION.md +278 -0
- package/framework/modules/coding/skills/coding/structuring-code/READABILITY.md +291 -0
- package/framework/modules/coding/skills/coding/structuring-code/SKILL.md +289 -0
- package/framework/modules/confluence/agents/ai-confluence-manager.md +369 -0
- package/framework/modules/confluence/commands/cmd-confluence-create-page.md +42 -0
- package/framework/modules/confluence/commands/cmd-confluence-fetch-page.md +42 -0
- package/framework/modules/confluence/commands/cmd-confluence-import-reports.md +42 -0
- package/framework/modules/confluence/commands/cmd-confluence-validate.md +42 -0
- package/framework/modules/confluence/module.json +69 -0
- package/framework/modules/confluence/schemas/adf.schema.json +128 -0
- package/framework/modules/confluence/skills/confluence/converting-adf/SKILL.md +455 -0
- package/framework/modules/confluence/skills/confluence/publishing-confluence/ADF-EXAMPLES.md +433 -0
- package/framework/modules/confluence/skills/confluence/publishing-confluence/EXAMPLES.md +513 -0
- package/framework/modules/confluence/skills/confluence/publishing-confluence/SKILL.md +651 -0
- package/framework/modules/core/agents/ai-framework-developer.md +184 -0
- package/framework/modules/core/agents/ai-framework-manager.md +222 -0
- package/framework/modules/core/agents/ai-scout-backlog.md +65 -0
- package/framework/modules/core/agents/ai-scout-codebase.md +66 -0
- package/framework/modules/core/agents/ai-scout-knowledge.md +63 -0
- package/framework/modules/core/commands/cmd-agent-list.md +37 -0
- package/framework/modules/core/commands/cmd-agent-run.md +37 -0
- package/framework/modules/core/commands/cmd-agent-show.md +37 -0
- package/framework/modules/core/commands/cmd-bump-version.md +42 -0
- package/framework/modules/core/commands/cmd-mcp-check.md +59 -0
- package/framework/modules/core/commands/cmd-mcp-seed.md +69 -0
- package/framework/modules/core/commands/cmd-mcp-setup.md +61 -0
- package/framework/modules/core/commands/cmd-mcp-status.md +70 -0
- package/framework/modules/core/commands/cmd-validate-links.md +42 -0
- package/framework/modules/core/commands/cmd-validate-versions.md +42 -0
- package/framework/modules/core/hooks/_lib/notify-helper.sh +27 -0
- package/framework/modules/core/hooks/block-main-commit.sh +35 -0
- package/framework/modules/core/hooks/notify.sh +43 -0
- package/framework/modules/core/hooks/post-write-format.sh +52 -0
- package/framework/modules/core/hooks/post-write-validate.sh +24 -0
- package/framework/modules/core/hooks/pre-bash-safety.sh +44 -0
- package/framework/modules/core/hooks/pre-commit-skill-reminder.sh +24 -0
- package/framework/modules/core/hooks/pre-write-quality.sh +24 -0
- package/framework/modules/core/hooks/session-compact-context.sh +37 -0
- package/framework/modules/core/hooks/session-end-reminder.sh +36 -0
- package/framework/modules/core/hooks/session-start-context.sh +33 -0
- package/framework/modules/core/hooks/session-start-worktree.sh +30 -0
- package/framework/modules/core/hooks/skill-reminder.sh +24 -0
- package/framework/modules/core/hooks/stop-commit-check.sh +24 -0
- package/framework/modules/core/hooks/stop-pr-suggest.sh +42 -0
- package/framework/modules/core/hooks/stop-quality-check.sh +24 -0
- package/framework/modules/core/hooks/subagent-context-loader.sh +24 -0
- package/framework/modules/core/module.json +205 -0
- package/framework/modules/core/registries/schemas/agents.schema.json +209 -0
- package/framework/modules/core/registries/schemas/command.schema.json +98 -0
- package/framework/modules/core/registries/schemas/custom-agent.schema.json +108 -0
- package/framework/modules/core/registries/schemas/module.schema.json +233 -0
- package/framework/modules/core/registries/schemas/template.schema.json +164 -0
- package/framework/modules/core/registries/skill-triggers.json +196 -0
- package/framework/modules/core/skills/building-agents/AGENT-TEMPLATE.md +289 -0
- package/framework/modules/core/skills/building-agents/CONTENT-ROUTING.md +302 -0
- package/framework/modules/core/skills/building-agents/EXAMPLES.md +448 -0
- package/framework/modules/core/skills/building-agents/SKILL.md +289 -0
- package/framework/modules/core/skills/building-agents/VALIDATION-CHECKLIST.md +304 -0
- package/framework/modules/core/skills/building-context/CONTENT-GUIDELINES.md +471 -0
- package/framework/modules/core/skills/building-context/EXAMPLES.md +1606 -0
- package/framework/modules/core/skills/building-context/LEVEL-DECISION-TREE.md +262 -0
- package/framework/modules/core/skills/building-context/SKILL.md +479 -0
- package/framework/modules/core/skills/building-context/VALIDATION-CHECKLIST.md +358 -0
- package/framework/modules/core/skills/building-framework/AGENT-CREATION-WORKFLOW.md +268 -0
- package/framework/modules/core/skills/building-framework/DECISION-TREES.md +183 -0
- package/framework/modules/core/skills/building-framework/EXAMPLES.md +387 -0
- package/framework/modules/core/skills/building-framework/GOVERNANCE-RULES.md +446 -0
- package/framework/modules/core/skills/building-framework/GOVERNANCE-UPDATE-WORKFLOW.md +172 -0
- package/framework/modules/core/skills/building-framework/REGISTRY-GUIDE.md +551 -0
- package/framework/modules/core/skills/building-framework/SCOPE-DECISION-TREE.md +284 -0
- package/framework/modules/core/skills/building-framework/SKILL.md +210 -0
- package/framework/modules/core/skills/building-skills/ANTI-PATTERNS-CONTENT.md +219 -0
- package/framework/modules/core/skills/building-skills/ANTI-PATTERNS-MCP.md +119 -0
- package/framework/modules/core/skills/building-skills/ANTI-PATTERNS-NAMING.md +129 -0
- package/framework/modules/core/skills/building-skills/ANTI-PATTERNS-STRUCTURE.md +139 -0
- package/framework/modules/core/skills/building-skills/EXAMPLES.md +330 -0
- package/framework/modules/core/skills/building-skills/PATTERNS.md +523 -0
- package/framework/modules/core/skills/building-skills/SKILL-CREATION-WORKFLOW-FRAMEWORK.md +253 -0
- package/framework/modules/core/skills/building-skills/SKILL.md +543 -0
- package/framework/modules/core/skills/committing-code/EXAMPLES.md +567 -0
- package/framework/modules/core/skills/committing-code/SKILL.md +285 -0
- package/framework/modules/core/skills/committing-code/STANDARDS-BRANCHES.md +95 -0
- package/framework/modules/core/skills/committing-code/STANDARDS-COMMITS.md +140 -0
- package/framework/modules/core/skills/committing-code/STANDARDS-FRAMEWORK.md +234 -0
- package/framework/modules/core/skills/committing-code/STANDARDS-TICKETS.md +102 -0
- package/framework/modules/core/skills/gathering-intelligence/SKILL.md +136 -0
- package/framework/modules/core/skills/managing-versions/EXAMPLES.md +277 -0
- package/framework/modules/core/skills/managing-versions/SCRIPTS-REFERENCE.md +295 -0
- package/framework/modules/core/skills/managing-versions/SKILL.md +260 -0
- package/framework/modules/core/skills/managing-versions/STANDARDS.md +231 -0
- package/framework/modules/core/skills/using-context/EXAMPLES.md +257 -0
- package/framework/modules/core/skills/using-context/SKILL.md +238 -0
- package/framework/modules/core/skills/using-context/STANDARDS.md +241 -0
- package/framework/modules/core/skills/using-framework/BEST-PRACTICES.md +421 -0
- package/framework/modules/core/skills/using-framework/DISCOVERY-ENGINE-ARCHITECTURE.md +331 -0
- package/framework/modules/core/skills/using-framework/EXAMPLES.md +535 -0
- package/framework/modules/core/skills/using-framework/ROUTES-REGISTRY-DESIGN.md +455 -0
- package/framework/modules/core/skills/using-framework/SKILL.md +176 -0
- package/framework/modules/core/skills/using-mcp/ANTI-PATTERNS.md +566 -0
- package/framework/modules/core/skills/using-mcp/DECISION-MATRICES.md +385 -0
- package/framework/modules/core/skills/using-mcp/EXAMPLES.md +466 -0
- package/framework/modules/core/skills/using-mcp/FRAMEWORK-MCP-PATTERNS.md +395 -0
- package/framework/modules/core/skills/using-mcp/QUICK-REFERENCE.md +98 -0
- package/framework/modules/core/skills/using-mcp/SKILL.md +624 -0
- package/framework/modules/core/skills/using-mcp/TOOLS-REFERENCE.md +532 -0
- package/framework/modules/core/skills/validating-links/EXAMPLES.md +326 -0
- package/framework/modules/core/skills/validating-links/SKILL.md +307 -0
- package/framework/modules/core/skills/validating-links/STANDARDS.md +353 -0
- package/framework/modules/core/skills/validating-markdown/EXAMPLES.md +516 -0
- package/framework/modules/core/skills/validating-markdown/SKILL.md +503 -0
- package/framework/modules/core/skills/validating-markdown/VALIDATION-RULES.md +360 -0
- package/framework/modules/core/skills/validating-markdown/YAML-SCHEMA.md +424 -0
- package/framework/modules/core/skills/verifying-quality/ANTI-PATTERNS.md +302 -0
- package/framework/modules/core/skills/verifying-quality/CLI-TESTING.md +389 -0
- package/framework/modules/core/skills/verifying-quality/DEFENSIVE-CODING.md +433 -0
- package/framework/modules/core/skills/verifying-quality/EVALUATION-PROTOCOL.md +106 -0
- package/framework/modules/core/skills/verifying-quality/EXAMPLES.md +588 -0
- package/framework/modules/core/skills/verifying-quality/QUALITY-CHECKLIST.md +181 -0
- package/framework/modules/core/skills/verifying-quality/SKILL.md +275 -0
- package/framework/modules/core/templates/agent/agent.template.md +97 -0
- package/framework/modules/core/templates/agent/template.config.json +47 -0
- package/framework/modules/core/templates/config/agentic-framework.json.template +17 -0
- package/framework/modules/core/templates/config/hooks/pre-commit-sync.sh.template +190 -0
- package/framework/modules/core/templates/config/hooks/pre-push.sh.template +330 -0
- package/framework/modules/core/templates/config/settings.local.json.template +39 -0
- package/framework/modules/core/templates/config/statusline.sh.template +253 -0
- package/framework/modules/core/templates/context/business-advanced.template.md +71 -0
- package/framework/modules/core/templates/context/business-basic.template.md +39 -0
- package/framework/modules/core/templates/context/business-expert.template.md +95 -0
- package/framework/modules/core/templates/context/process-advanced.template.md +141 -0
- package/framework/modules/core/templates/context/process-basic.template.md +87 -0
- package/framework/modules/core/templates/context/process-expert.template.md +213 -0
- package/framework/modules/core/templates/context/technical-advanced.template.md +111 -0
- package/framework/modules/core/templates/context/technical-basic.template.md +66 -0
- package/framework/modules/core/templates/context/technical-expert.template.md +157 -0
- package/framework/modules/core/templates/module/module.json.template +20 -0
- package/framework/modules/core/templates/module/template.config.json +41 -0
- package/framework/modules/core/templates/skill/SKILL.md.template +96 -0
- package/framework/modules/core/templates/skill/template.config.json +39 -0
- package/framework/modules/jira/agents/ai-jira-manager.md +320 -0
- package/framework/modules/jira/commands/cmd-jira-export.md +42 -0
- package/framework/modules/jira/commands/cmd-jira-sync.md +42 -0
- package/framework/modules/jira/module.json +55 -0
- package/framework/modules/jira/schemas/jira-sync.config.json +75 -0
- package/framework/modules/jira/skills/jira/integrating-jira/CONFLUENCE-PATTERNS.md +284 -0
- package/framework/modules/jira/skills/jira/integrating-jira/CONVERSION-RULES.md +188 -0
- package/framework/modules/jira/skills/jira/integrating-jira/EXAMPLES.md +406 -0
- package/framework/modules/jira/skills/jira/integrating-jira/JIRA-PATTERNS.md +284 -0
- package/framework/modules/jira/skills/jira/integrating-jira/SKILL.md +412 -0
- package/framework/modules/reporting/agents/ai-report-manager.md +410 -0
- package/framework/modules/reporting/module.json +35 -0
- package/framework/modules/reporting/skills/reporting/building-reports/EXAMPLES.md +613 -0
- package/framework/modules/reporting/skills/reporting/building-reports/SKILL.md +509 -0
- package/framework/modules/writer/BUILD_SYSTEM.md +325 -0
- package/framework/modules/writer/MIGRATION.md +326 -0
- package/framework/modules/writer/agents/ai-book-writer.md +196 -0
- package/framework/modules/writer/agents/ai-prose-writer.md +58 -0
- package/framework/modules/writer/agents/ai-world-builder.md +46 -0
- package/framework/modules/writer/commands/cmd-writer-add-fact.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-analyze.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-build.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-chapter.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-character.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-history-event.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-magic-system.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-nation.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-part.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-region.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-scene.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-create-world-rule.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-export.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-generate-context.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-init-baseline.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-init.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-lock-fact.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-validate-immutability.md +42 -0
- package/framework/modules/writer/commands/cmd-writer-validate.md +42 -0
- package/framework/modules/writer/module.json +181 -0
- package/framework/modules/writer/schemas/baseline.schema.json +60 -0
- package/framework/modules/writer/schemas/manifest.schema.json +155 -0
- package/framework/modules/writer/schemas/prerequisites.schema.json +171 -0
- package/framework/modules/writer/schemas/token-budgets.json +129 -0
- package/framework/modules/writer/schemas/token-budgets.schema.json +92 -0
- package/framework/modules/writer/schemas/world-fact.schema.json +172 -0
- package/framework/modules/writer/schemas/world-lock.schema.json +244 -0
- package/framework/modules/writer/skills/writer/building-worlds/CONSISTENCY-PILLARS.md +412 -0
- package/framework/modules/writer/skills/writer/building-worlds/CULTURE-BUILDING.md +354 -0
- package/framework/modules/writer/skills/writer/building-worlds/GEOGRAPHY-HISTORY.md +293 -0
- package/framework/modules/writer/skills/writer/building-worlds/MAGIC-SYSTEMS.md +311 -0
- package/framework/modules/writer/skills/writer/building-worlds/REVELATION-CHECKLIST.md +282 -0
- package/framework/modules/writer/skills/writer/building-worlds/SKILL.md +313 -0
- package/framework/modules/writer/skills/writer/organizing-books/DOMAINS.md +212 -0
- package/framework/modules/writer/skills/writer/organizing-books/FOLDER-STRUCTURE.md +593 -0
- package/framework/modules/writer/skills/writer/organizing-books/IMMUTABILITY-GUIDE.md +350 -0
- package/framework/modules/writer/skills/writer/organizing-books/METADATA-GUIDE.md +780 -0
- package/framework/modules/writer/skills/writer/organizing-books/SKILL.md +257 -0
- package/framework/modules/writer/skills/writer/organizing-books/SSOT-RULES.md +214 -0
- package/framework/modules/writer/skills/writer/organizing-books/WORLD-STRUCTURE.md +222 -0
- package/framework/modules/writer/skills/writer/organizing-books/templates/chapter.template.md +57 -0
- package/framework/modules/writer/skills/writer/organizing-books/templates/character.template.md +121 -0
- package/framework/modules/writer/skills/writer/organizing-books/templates/part.template.md +67 -0
- package/framework/modules/writer/skills/writer/organizing-books/templates/scene.template.md +62 -0
- package/framework/modules/writer/skills/writer/organizing-books/templates/template.config.json +114 -0
- package/framework/modules/writer/skills/writer/writing-prose/CHARACTER-VOICE.md +654 -0
- package/framework/modules/writer/skills/writer/writing-prose/DESCRIPTION-TECHNIQUES.md +688 -0
- package/framework/modules/writer/skills/writer/writing-prose/DIALOGUE-GUIDE.md +663 -0
- package/framework/modules/writer/skills/writer/writing-prose/PACING-STRUCTURE.md +613 -0
- package/framework/modules/writer/skills/writer/writing-prose/PROSE-PATTERNS.md +569 -0
- package/framework/modules/writer/skills/writer/writing-prose/SKILL.md +583 -0
- package/framework/modules/writer/skills/writer/writing-prose/WORLD-BUILDING-RULES.md +692 -0
- package/framework/modules/writer/skills/writer/writing-prose/examples/blended-accessible.md +651 -0
- package/framework/modules/writer/skills/writer/writing-prose/examples/tolkien-style.md +534 -0
- package/framework/modules/writer/skills/writer/writing-prose/examples/zelazny-style.md +415 -0
- package/framework/modules/writer/src/package.json +3 -0
- package/framework/modules/writer/templates/package.json +28 -0
- package/framework/modules/writer/templates/world/baseline.template.md +183 -0
- package/framework/modules/writer/templates/world/history-event.template.md +89 -0
- package/framework/modules/writer/templates/world/magic-system.template.md +138 -0
- package/framework/modules/writer/templates/world/manifest.template.json +9 -0
- package/framework/modules/writer/templates/world/nation.template.md +123 -0
- package/framework/modules/writer/templates/world/region.template.md +65 -0
- package/framework/modules/writer/templates/world/world-rule.template.md +50 -0
- package/package.json +110 -0
|
@@ -0,0 +1,1606 @@
|
|
|
1
|
+
# Context Authoring Examples
|
|
2
|
+
|
|
3
|
+
## Example 1: E-commerce Business Context
|
|
4
|
+
|
|
5
|
+
### Scenario
|
|
6
|
+
An e-commerce platform for handmade goods, similar to Etsy but focused on sustainable products.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
### BEFORE (WRONG): Everything in Basic
|
|
11
|
+
|
|
12
|
+
```markdown
|
|
13
|
+
# business-basic.md (~2000 tokens - WAY TOO MUCH!)
|
|
14
|
+
|
|
15
|
+
**Product:** EcoMarket - Online marketplace for sustainable handmade goods
|
|
16
|
+
|
|
17
|
+
**Users:**
|
|
18
|
+
- Artisans who create sustainable products (jewelry, clothing, home goods)
|
|
19
|
+
- Conscious consumers aged 25-45, primarily female, household income $60k+
|
|
20
|
+
- Gift shoppers looking for unique, eco-friendly items
|
|
21
|
+
|
|
22
|
+
**Business Model:**
|
|
23
|
+
- Commission-based: 8% on each sale
|
|
24
|
+
- Premium seller subscriptions: $29/month for enhanced visibility
|
|
25
|
+
- Advertising revenue from sustainable brands
|
|
26
|
+
|
|
27
|
+
**Key Metrics:**
|
|
28
|
+
- GMV (Gross Merchandise Value): $2M monthly
|
|
29
|
+
- Active Sellers: 5,000
|
|
30
|
+
- Monthly Active Buyers: 50,000
|
|
31
|
+
- Average Order Value: $45
|
|
32
|
+
- Seller Retention: 85% year-over-year
|
|
33
|
+
|
|
34
|
+
**Competitive Landscape:**
|
|
35
|
+
- Etsy: Broader focus, 10x larger, less curated
|
|
36
|
+
- Faire: B2B focused, wholesale only
|
|
37
|
+
- Our differentiation: Sustainability certification, carbon-neutral shipping
|
|
38
|
+
|
|
39
|
+
**Strategic Direction:**
|
|
40
|
+
We focus on sustainability-verified products because mainstream marketplaces
|
|
41
|
+
have greenwashing problems. We accept lower GMV growth (30% vs Etsy's 50%)
|
|
42
|
+
in exchange for brand trust and premium positioning.
|
|
43
|
+
|
|
44
|
+
**Decision Framework:**
|
|
45
|
+
New features must:
|
|
46
|
+
- Support sustainability mission (reject if not)
|
|
47
|
+
- Improve seller success metrics
|
|
48
|
+
- Not compromise trust (verified sellers only)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Issues:**
|
|
52
|
+
1. Token budget massively exceeded (2000 vs 500 target)
|
|
53
|
+
2. Metrics belong in ADVANCED, not BASIC
|
|
54
|
+
3. Competitive analysis belongs in ADVANCED
|
|
55
|
+
4. Strategic rationale belongs in EXPERT
|
|
56
|
+
5. Decision framework belongs in EXPERT
|
|
57
|
+
6. No room for ADVANCED or EXPERT (everything dumped in BASIC)
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### AFTER (CORRECT): Properly Split Across Levels
|
|
62
|
+
|
|
63
|
+
#### business-basic.md (~500 tokens)
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
# Business Context - Basic
|
|
67
|
+
|
|
68
|
+
**Product:** EcoMarket - Online marketplace for sustainable handmade goods
|
|
69
|
+
|
|
70
|
+
**Users:**
|
|
71
|
+
- Artisan sellers creating eco-friendly handmade products
|
|
72
|
+
- Conscious consumers seeking sustainable gift and home items
|
|
73
|
+
|
|
74
|
+
**Business Model:**
|
|
75
|
+
- 8% commission on sales
|
|
76
|
+
- $29/month premium seller subscriptions
|
|
77
|
+
- Advertising from sustainable brands
|
|
78
|
+
|
|
79
|
+
**Core Value:**
|
|
80
|
+
Connect verified sustainable artisans with conscious consumers who want
|
|
81
|
+
to shop their values.
|
|
82
|
+
|
|
83
|
+
**Product Category:** B2C/C2C marketplace (two-sided platform)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Why this is correct:**
|
|
87
|
+
- ~500 tokens
|
|
88
|
+
- Foundational facts only
|
|
89
|
+
- Answers "What is EcoMarket?" and "Who uses it?"
|
|
90
|
+
- No metrics, competition, or strategy
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
#### business-advanced.md (~1000 tokens)
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
# Business Context - Advanced
|
|
98
|
+
|
|
99
|
+
## Key Metrics
|
|
100
|
+
|
|
101
|
+
**Marketplace Health:**
|
|
102
|
+
- GMV (Gross Merchandise Value): $2M monthly
|
|
103
|
+
- Active Sellers: 5,000
|
|
104
|
+
- Monthly Active Buyers: 50,000
|
|
105
|
+
- Average Order Value: $45
|
|
106
|
+
|
|
107
|
+
**Success Indicators:**
|
|
108
|
+
- Seller Retention: Target 85% year-over-year
|
|
109
|
+
- Buyer Repeat Rate: Target 40% within 90 days
|
|
110
|
+
- Search-to-Purchase: Target 8% conversion
|
|
111
|
+
|
|
112
|
+
## User Personas
|
|
113
|
+
|
|
114
|
+
**Persona 1: Eco-Conscious Consumer (70% of buyers)**
|
|
115
|
+
- Demographics: Female, 28-42, household income $60k+
|
|
116
|
+
- Motivation: Values-driven shopping, gift giving
|
|
117
|
+
- Pain points: Difficulty verifying sustainability claims elsewhere
|
|
118
|
+
- Success metric: Repeat purchase within 90 days
|
|
119
|
+
|
|
120
|
+
**Persona 2: Sustainable Artisan (primary sellers)**
|
|
121
|
+
- Demographics: Small business owners, 1-3 employees
|
|
122
|
+
- Motivation: Reach values-aligned customers, fair pricing
|
|
123
|
+
- Pain points: Marketing costs, inventory management
|
|
124
|
+
- Success metric: 10+ sales per month
|
|
125
|
+
|
|
126
|
+
## Competitive Position
|
|
127
|
+
|
|
128
|
+
**Direct Competitors:**
|
|
129
|
+
- Etsy: 10x larger, broader focus, less curated
|
|
130
|
+
- Faire: B2B/wholesale only, not consumer-facing
|
|
131
|
+
|
|
132
|
+
**Our Differentiation:**
|
|
133
|
+
- Sustainability certification (verified sellers only)
|
|
134
|
+
- Carbon-neutral shipping included
|
|
135
|
+
- Premium brand positioning vs mass market
|
|
136
|
+
|
|
137
|
+
**Market Segment:**
|
|
138
|
+
Conscious consumers willing to pay 20-30% premium for verified sustainability.
|
|
139
|
+
|
|
140
|
+
## Current Priorities
|
|
141
|
+
|
|
142
|
+
**Q4 2025 Focus:**
|
|
143
|
+
1. Seller acquisition: Grow to 7,500 active sellers
|
|
144
|
+
2. Trust features: Enhanced sustainability verification
|
|
145
|
+
3. Repeat buyers: Improve retention to 45%
|
|
146
|
+
|
|
147
|
+
**Pricing Structure:**
|
|
148
|
+
- Free tier: 8% commission, basic shop
|
|
149
|
+
- Premium ($29/mo): 6% commission, featured listings, analytics
|
|
150
|
+
- Enterprise ($199/mo): 5% commission, dedicated support, API access
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Why this is correct:**
|
|
154
|
+
- ~1000 tokens
|
|
155
|
+
- Tactical information for execution
|
|
156
|
+
- Detailed personas and metrics
|
|
157
|
+
- Competitive context for decisions
|
|
158
|
+
- No duplication of basic facts
|
|
159
|
+
- No strategic WHY (that's expert level)
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
#### business-expert.md (~1500 tokens)
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
# Business Context - Expert
|
|
167
|
+
|
|
168
|
+
## Strategic Direction
|
|
169
|
+
|
|
170
|
+
**Core Strategy:** Premium positioning in sustainable marketplace segment
|
|
171
|
+
|
|
172
|
+
**Rationale:**
|
|
173
|
+
Mass-market marketplaces (Etsy, Amazon Handmade) struggle with greenwashing.
|
|
174
|
+
Consumers increasingly distrust sustainability claims. We sacrifice growth
|
|
175
|
+
velocity for brand trust.
|
|
176
|
+
|
|
177
|
+
**Evidence:**
|
|
178
|
+
- Consumer survey: 73% don't trust "eco-friendly" labels on Etsy
|
|
179
|
+
- Our NPS: 65 vs Etsy's 31 (among sustainability-focused shoppers)
|
|
180
|
+
- Willing to accept 30% slower GMV growth vs competitors
|
|
181
|
+
|
|
182
|
+
**Trade-offs Accepted:**
|
|
183
|
+
- Smaller addressable market (only verified sustainable sellers)
|
|
184
|
+
- Higher CAC ($85 vs $42 for mass market)
|
|
185
|
+
- Slower seller onboarding (verification takes 2-3 weeks)
|
|
186
|
+
|
|
187
|
+
**Revisit Conditions:**
|
|
188
|
+
- If verification becomes industry standard (no differentiation)
|
|
189
|
+
- If CAC exceeds $120 (unit economics break)
|
|
190
|
+
- If mass-market competitors achieve >50 NPS
|
|
191
|
+
|
|
192
|
+
## Decision Framework
|
|
193
|
+
|
|
194
|
+
**Feature Evaluation:**
|
|
195
|
+
All features must pass 3 tests:
|
|
196
|
+
|
|
197
|
+
1. **Sustainability Alignment**
|
|
198
|
+
- Does it support our sustainability mission?
|
|
199
|
+
- Reject if: Compromises verification standards
|
|
200
|
+
- Example: We rejected dropshipping (can't verify supply chain)
|
|
201
|
+
|
|
202
|
+
2. **Seller Success**
|
|
203
|
+
- Does it improve seller sales or reduce friction?
|
|
204
|
+
- Minimum: 10% improvement in conversion or 20% time savings
|
|
205
|
+
- Example: Automated carbon-offset calculation (15% conversion lift)
|
|
206
|
+
|
|
207
|
+
3. **Trust Maintenance**
|
|
208
|
+
- Does it maintain or enhance trust?
|
|
209
|
+
- Reject if: Creates perception of greenwashing
|
|
210
|
+
- Example: We rejected seller self-certification (trust risk)
|
|
211
|
+
|
|
212
|
+
**Pricing Decisions:**
|
|
213
|
+
- Never exceed 10% commission (market expectation ceiling)
|
|
214
|
+
- Premium tier must provide 3x value of cost
|
|
215
|
+
- No advertising to sellers (conflicts with trust mission)
|
|
216
|
+
|
|
217
|
+
## Business Constraints
|
|
218
|
+
|
|
219
|
+
**Regulatory:**
|
|
220
|
+
- FTC Green Guides compliance required (all sustainability claims)
|
|
221
|
+
- Consumer protection laws in 50 states (U.S. only currently)
|
|
222
|
+
- Payment processing: PCI DSS Level 1 compliance
|
|
223
|
+
|
|
224
|
+
**Operational:**
|
|
225
|
+
- Verification team capacity: 200 sellers/month maximum
|
|
226
|
+
- Carbon offset program: Locked to single vendor (3-year contract)
|
|
227
|
+
- Payment processing: Stripe exclusive (migration cost prohibitive)
|
|
228
|
+
|
|
229
|
+
**Financial:**
|
|
230
|
+
- Burn rate: $300k/month, runway 18 months
|
|
231
|
+
- Unit economics: Positive at $500 GMV per seller per month
|
|
232
|
+
- Series A constraint: Must reach $5M ARR for favorable terms
|
|
233
|
+
|
|
234
|
+
## Long-term Vision (3-5 years)
|
|
235
|
+
|
|
236
|
+
**Phase 1 (Current):** U.S. marketplace, sustainability focused
|
|
237
|
+
**Phase 2 (2026):** EU expansion, localized sustainability standards
|
|
238
|
+
**Phase 3 (2027):** B2B wholesale, supply chain transparency tools
|
|
239
|
+
**Phase 4 (2028+):** Platform licensing to other verticals (food, fashion)
|
|
240
|
+
|
|
241
|
+
**North Star Metric:** Verified sustainable GMV
|
|
242
|
+
- Current: $2M/month
|
|
243
|
+
- 2026 Target: $10M/month
|
|
244
|
+
- 2028 Target: $50M/month
|
|
245
|
+
|
|
246
|
+
## Risk Management
|
|
247
|
+
|
|
248
|
+
**Key Risks:**
|
|
249
|
+
|
|
250
|
+
1. **Verification Scalability**
|
|
251
|
+
- Risk: Can't verify sellers fast enough
|
|
252
|
+
- Mitigation: Automated verification tools (in development)
|
|
253
|
+
- Trigger: Waitlist exceeds 500 sellers
|
|
254
|
+
|
|
255
|
+
2. **Greenwashing PR Crisis**
|
|
256
|
+
- Risk: Verified seller found non-compliant
|
|
257
|
+
- Mitigation: Quarterly audits, whistleblower program
|
|
258
|
+
- Response plan: Immediate delisting, public transparency
|
|
259
|
+
|
|
260
|
+
3. **Market Consolidation**
|
|
261
|
+
- Risk: Etsy acquires/builds competing verified program
|
|
262
|
+
- Mitigation: Brand differentiation, community building
|
|
263
|
+
- Hedge: Strategic partnerships with NGOs
|
|
264
|
+
|
|
265
|
+
4. **Economic Downturn**
|
|
266
|
+
- Risk: Premium products are discretionary spend
|
|
267
|
+
- Mitigation: Expand gift market (less price-sensitive)
|
|
268
|
+
- Trigger: 20% drop in AOV over 2 months
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Why this is correct:**
|
|
272
|
+
- ~1500 tokens
|
|
273
|
+
- Strategic rationale and WHY
|
|
274
|
+
- Decision-making frameworks
|
|
275
|
+
- Business constraints and risks
|
|
276
|
+
- Long-term vision
|
|
277
|
+
- No duplication of metrics or competitive details
|
|
278
|
+
- Provides context for architectural decisions
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Example 2: Technical Context - Wrong Level
|
|
283
|
+
|
|
284
|
+
### Scenario
|
|
285
|
+
Backend API built with Node.js and PostgreSQL.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
### WRONG: ADR in Basic Level
|
|
290
|
+
|
|
291
|
+
```markdown
|
|
292
|
+
# technical-basic.md
|
|
293
|
+
|
|
294
|
+
**Tech Stack:**
|
|
295
|
+
- Backend: Node.js 18, Express, TypeScript
|
|
296
|
+
- Database: PostgreSQL 14
|
|
297
|
+
- Infrastructure: AWS ECS
|
|
298
|
+
|
|
299
|
+
**Architecture Decision: Why PostgreSQL over MongoDB**
|
|
300
|
+
|
|
301
|
+
We chose PostgreSQL because we have complex relational data with many
|
|
302
|
+
foreign keys between users, products, orders, and reviews. MongoDB's
|
|
303
|
+
document model would require complex application-level joins and denormalization.
|
|
304
|
+
|
|
305
|
+
Additionally, our team has 5 years of PostgreSQL experience vs 1 year with
|
|
306
|
+
MongoDB, reducing training time and operational risk.
|
|
307
|
+
|
|
308
|
+
Trade-offs: We sacrifice MongoDB's flexible schema for PostgreSQL's rigid
|
|
309
|
+
structure, but our domain model is stable (e-commerce) so this is acceptable.
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**Issues:**
|
|
313
|
+
1. ADR belongs in EXPERT level, not BASIC
|
|
314
|
+
2. Rationale and trade-offs are strategic, not foundational
|
|
315
|
+
3. Basic should be concise facts, not explanations
|
|
316
|
+
4. This prevents proper use of progressive disclosure
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
### CORRECT: ADR in Expert Level
|
|
321
|
+
|
|
322
|
+
#### technical-basic.md (~500 tokens)
|
|
323
|
+
|
|
324
|
+
```markdown
|
|
325
|
+
# Technical Context - Basic
|
|
326
|
+
|
|
327
|
+
**Tech Stack:**
|
|
328
|
+
- Backend: Node.js 18, Express, TypeScript
|
|
329
|
+
- Database: PostgreSQL 14, Prisma ORM
|
|
330
|
+
- Infrastructure: AWS (ECS, RDS, S3)
|
|
331
|
+
- Cache: Redis 7
|
|
332
|
+
|
|
333
|
+
**Architecture:** Monolithic API with separate frontend
|
|
334
|
+
|
|
335
|
+
**Repository Structure:**
|
|
336
|
+
```
|
|
337
|
+
/src
|
|
338
|
+
/api # Express routes
|
|
339
|
+
/services # Business logic
|
|
340
|
+
/models # Database models (Prisma)
|
|
341
|
+
/utils # Shared utilities
|
|
342
|
+
/prisma # Database schema & migrations
|
|
343
|
+
/tests # Unit and integration tests
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**Local Development:**
|
|
347
|
+
```bash
|
|
348
|
+
npm install
|
|
349
|
+
docker-compose up # Starts PostgreSQL + Redis
|
|
350
|
+
npm run dev # Starts on localhost:3000
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**Environment Variables:**
|
|
354
|
+
```
|
|
355
|
+
DATABASE_URL=postgresql://localhost:5432/ecomarket
|
|
356
|
+
REDIS_URL=redis://localhost:6379
|
|
357
|
+
JWT_SECRET=<from 1Password>
|
|
358
|
+
```
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Why this is correct:**
|
|
362
|
+
- ~500 tokens
|
|
363
|
+
- Only foundational information
|
|
364
|
+
- No rationale or explanations
|
|
365
|
+
- A developer can start coding immediately
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
#### technical-expert.md (~1500 tokens)
|
|
370
|
+
|
|
371
|
+
```markdown
|
|
372
|
+
# Technical Context - Expert
|
|
373
|
+
|
|
374
|
+
## Architecture Decision Records
|
|
375
|
+
|
|
376
|
+
### ADR-001: PostgreSQL vs MongoDB
|
|
377
|
+
|
|
378
|
+
**Date:** 2024-03-15
|
|
379
|
+
**Status:** Accepted
|
|
380
|
+
**Deciders:** CTO, Backend Lead, Infrastructure Lead
|
|
381
|
+
|
|
382
|
+
**Context:**
|
|
383
|
+
We need to choose a database for our marketplace platform. Key requirements:
|
|
384
|
+
- Complex relational data (users, sellers, products, orders, reviews)
|
|
385
|
+
- ACID compliance for financial transactions
|
|
386
|
+
- Team expertise and operational experience
|
|
387
|
+
- Query flexibility for marketplace analytics
|
|
388
|
+
|
|
389
|
+
**Decision:** PostgreSQL 14 with Prisma ORM
|
|
390
|
+
|
|
391
|
+
**Rationale:**
|
|
392
|
+
|
|
393
|
+
1. **Data Model Complexity**
|
|
394
|
+
- 15+ entity types with many foreign key relationships
|
|
395
|
+
- MongoDB would require complex application-level joins
|
|
396
|
+
- Example: Order → Buyer, Seller, Product, Payment, Shipment (5 relations)
|
|
397
|
+
|
|
398
|
+
2. **Transaction Requirements**
|
|
399
|
+
- Payment processing requires ACID guarantees
|
|
400
|
+
- Money movement between buyer, seller, platform must be atomic
|
|
401
|
+
- MongoDB transactions are limited to single replica set
|
|
402
|
+
|
|
403
|
+
3. **Team Expertise**
|
|
404
|
+
- 5 years team experience with PostgreSQL
|
|
405
|
+
- 1 year experience with MongoDB
|
|
406
|
+
- 80% of team familiar with SQL, 30% with MongoDB
|
|
407
|
+
|
|
408
|
+
4. **Query Patterns**
|
|
409
|
+
- Analytics queries require complex joins and aggregations
|
|
410
|
+
- PostgreSQL's query planner handles this efficiently
|
|
411
|
+
- MongoDB would require expensive aggregation pipelines
|
|
412
|
+
|
|
413
|
+
**Trade-offs Accepted:**
|
|
414
|
+
|
|
415
|
+
| Aspect | PostgreSQL | MongoDB | Decision Impact |
|
|
416
|
+
|--------|-----------|---------|-----------------|
|
|
417
|
+
| Schema flexibility | Rigid (migrations required) | Flexible | We accept migration overhead |
|
|
418
|
+
| Horizontal scaling | Vertical scaling primary | Native sharding | We accept scaling limits |
|
|
419
|
+
| Development speed | Slower (schema changes) | Faster (no migrations) | We accept slower iteration |
|
|
420
|
+
|
|
421
|
+
**Benefits Gained:**
|
|
422
|
+
- ACID guarantees for financial integrity
|
|
423
|
+
- Team productivity (familiar tooling)
|
|
424
|
+
- Rich query capabilities (analytics)
|
|
425
|
+
|
|
426
|
+
**Risks and Mitigation:**
|
|
427
|
+
- Risk: Scaling limitations at high volume
|
|
428
|
+
- Threshold: 100k orders/day (current: 2k/day)
|
|
429
|
+
- Mitigation: Read replicas, partitioning, if needed
|
|
430
|
+
- Revisit trigger: If we reach 50k orders/day
|
|
431
|
+
|
|
432
|
+
**Alternatives Considered:**
|
|
433
|
+
- MongoDB: Rejected due to transaction limitations
|
|
434
|
+
- MySQL: Rejected due to JSON query limitations
|
|
435
|
+
- DynamoDB: Rejected due to team expertise gap
|
|
436
|
+
|
|
437
|
+
**Revisit Conditions:**
|
|
438
|
+
1. If order volume exceeds 50k/day (scaling limits)
|
|
439
|
+
2. If product catalog exceeds 10M SKUs (query performance)
|
|
440
|
+
3. If we add real-time features requiring document model
|
|
441
|
+
4. If team expertise shifts (majority MongoDB experience)
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
### ADR-002: Monolith vs Microservices
|
|
446
|
+
|
|
447
|
+
**Date:** 2024-04-10
|
|
448
|
+
**Status:** Accepted
|
|
449
|
+
**Deciders:** CTO, Engineering Team
|
|
450
|
+
|
|
451
|
+
**Context:**
|
|
452
|
+
Marketplace platform growing from 5k to 50k+ sellers. Need to decide on
|
|
453
|
+
service architecture.
|
|
454
|
+
|
|
455
|
+
**Decision:** Maintain monolithic architecture
|
|
456
|
+
|
|
457
|
+
**Rationale:**
|
|
458
|
+
|
|
459
|
+
1. **Team Size**
|
|
460
|
+
- Current: 6 backend developers
|
|
461
|
+
- Microservices require 2-3 devs per service minimum
|
|
462
|
+
- Insufficient team for meaningful service boundaries
|
|
463
|
+
|
|
464
|
+
2. **Operational Complexity**
|
|
465
|
+
- Microservices require: Service mesh, distributed tracing, orchestration
|
|
466
|
+
- Current team has no Kubernetes expertise
|
|
467
|
+
- Training + tooling cost: $100k+, 6 months
|
|
468
|
+
|
|
469
|
+
3. **Performance**
|
|
470
|
+
- Current monolith: 5k req/min, 50ms p95 latency
|
|
471
|
+
- Headroom: Can scale to 50k req/min with vertical scaling
|
|
472
|
+
- No performance pressure to distribute
|
|
473
|
+
|
|
474
|
+
**Trade-offs Accepted:**
|
|
475
|
+
- Longer deployment times (5min vs 30sec for microservices)
|
|
476
|
+
- Tighter coupling between features
|
|
477
|
+
- Single technology stack constraint (Node.js only)
|
|
478
|
+
- Database schema changes impact entire codebase
|
|
479
|
+
|
|
480
|
+
**Benefits:**
|
|
481
|
+
- Simpler development workflow
|
|
482
|
+
- Easier debugging (no distributed tracing needed)
|
|
483
|
+
- Atomic transactions across all features
|
|
484
|
+
- Lower operational overhead
|
|
485
|
+
|
|
486
|
+
**Revisit Conditions:**
|
|
487
|
+
1. Team exceeds 20 backend developers
|
|
488
|
+
2. Request volume exceeds 50k/min
|
|
489
|
+
3. Regulatory requirements mandate service isolation
|
|
490
|
+
4. Need to scale teams independently on features
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Technology Strategy
|
|
495
|
+
|
|
496
|
+
**Current State (2025):**
|
|
497
|
+
- Node.js monolith on AWS ECS
|
|
498
|
+
- PostgreSQL on RDS (single primary, 2 read replicas)
|
|
499
|
+
- Redis for session management and caching
|
|
500
|
+
- S3 for image storage
|
|
501
|
+
|
|
502
|
+
**Near-term Evolution (2026):**
|
|
503
|
+
- Extract payment processing to separate service (PCI compliance isolation)
|
|
504
|
+
- Add Elasticsearch for product search (PostgreSQL full-text insufficient)
|
|
505
|
+
- Implement CDN for image delivery (CloudFront)
|
|
506
|
+
|
|
507
|
+
**Long-term Vision (2027-2028):**
|
|
508
|
+
- Service extraction if team exceeds 20 developers
|
|
509
|
+
- Event-driven architecture for order processing
|
|
510
|
+
- Multi-region deployment for EU expansion
|
|
511
|
+
|
|
512
|
+
**Technology Principles:**
|
|
513
|
+
1. Boring technology unless strong justification
|
|
514
|
+
2. Choose managed services over self-hosted
|
|
515
|
+
3. Optimize for team velocity over theoretical performance
|
|
516
|
+
4. No technology decisions without 3-month trial
|
|
517
|
+
|
|
518
|
+
## Scalability Strategy
|
|
519
|
+
|
|
520
|
+
**Current Bottlenecks:**
|
|
521
|
+
1. Database writes: 2k writes/sec capacity (current: 200/sec)
|
|
522
|
+
2. Image processing: 100 images/min (current: 20/min)
|
|
523
|
+
3. Search queries: 5k/sec capacity (current: 500/sec)
|
|
524
|
+
|
|
525
|
+
**Scaling Roadmap:**
|
|
526
|
+
|
|
527
|
+
**Phase 1 (Current → 10x):**
|
|
528
|
+
- Add read replicas (query distribution)
|
|
529
|
+
- Implement aggressive caching (Redis)
|
|
530
|
+
- Optimize N+1 queries (Dataloader pattern)
|
|
531
|
+
|
|
532
|
+
**Phase 2 (10x → 50x):**
|
|
533
|
+
- Database partitioning by seller_id
|
|
534
|
+
- Extract image processing to async queue
|
|
535
|
+
- Add Elasticsearch for search
|
|
536
|
+
|
|
537
|
+
**Phase 3 (50x+):**
|
|
538
|
+
- Service extraction (payments, search, images)
|
|
539
|
+
- Multi-region database (AWS Aurora Global)
|
|
540
|
+
- Event-driven architecture
|
|
541
|
+
|
|
542
|
+
## Technical Constraints
|
|
543
|
+
|
|
544
|
+
**Infrastructure:**
|
|
545
|
+
- AWS only (no multi-cloud) - existing contract, team expertise
|
|
546
|
+
- ECS for compute (not Kubernetes) - team skill gap
|
|
547
|
+
- RDS for database (not self-managed) - operational overhead
|
|
548
|
+
|
|
549
|
+
**Security:**
|
|
550
|
+
- PCI DSS Level 1 compliance required (payment processing)
|
|
551
|
+
- SOC 2 Type II audit required (customer requirement)
|
|
552
|
+
- GDPR compliance for EU users (future)
|
|
553
|
+
|
|
554
|
+
**Performance:**
|
|
555
|
+
- API response time: p95 < 200ms (customer SLA)
|
|
556
|
+
- Image upload: < 5sec for 10MB file
|
|
557
|
+
- Search results: < 100ms (UX requirement)
|
|
558
|
+
|
|
559
|
+
**Legacy:**
|
|
560
|
+
- Stripe exclusive for payments (migration cost $50k+)
|
|
561
|
+
- Prisma ORM locked to v4 (v5 breaking changes significant)
|
|
562
|
+
- Node.js 18 minimum (some dependencies incompatible with 20)
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
**Why this is correct:**
|
|
566
|
+
- ADR in EXPERT level where it belongs
|
|
567
|
+
- Strategic rationale and trade-offs
|
|
568
|
+
- Technology evolution roadmap
|
|
569
|
+
- Constraints and decisions context
|
|
570
|
+
- No duplication of basic tech stack facts
|
|
571
|
+
- Provides context for future architectural decisions
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
## Example 3: Content Duplication Anti-Pattern
|
|
576
|
+
|
|
577
|
+
### Scenario
|
|
578
|
+
Code review process documented across multiple levels.
|
|
579
|
+
|
|
580
|
+
---
|
|
581
|
+
|
|
582
|
+
### WRONG: Workflow Duplicated Across Levels
|
|
583
|
+
|
|
584
|
+
#### process-basic.md
|
|
585
|
+
```markdown
|
|
586
|
+
**Code Review Process:**
|
|
587
|
+
1. Create PR from feature branch
|
|
588
|
+
2. Request review from team member
|
|
589
|
+
3. Address feedback
|
|
590
|
+
4. Get approval
|
|
591
|
+
5. Merge to main
|
|
592
|
+
6. Deploy to staging
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
#### process-advanced.md
|
|
596
|
+
```markdown
|
|
597
|
+
**Detailed Code Review Process:**
|
|
598
|
+
1. Create PR from feature branch
|
|
599
|
+
2. Request review from team member
|
|
600
|
+
3. Reviewer checks:
|
|
601
|
+
- Code quality
|
|
602
|
+
- Test coverage
|
|
603
|
+
- Documentation
|
|
604
|
+
4. Author addresses feedback
|
|
605
|
+
5. Get approval from reviewer
|
|
606
|
+
6. Merge to main
|
|
607
|
+
7. Automated deployment to staging
|
|
608
|
+
8. Verify in staging environment
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
**Issues:**
|
|
612
|
+
1. Steps 1-6 from BASIC are duplicated in ADVANCED
|
|
613
|
+
2. ADVANCED should EXPAND basic workflow, not repeat it
|
|
614
|
+
3. Wastes tokens on redundant information
|
|
615
|
+
4. User loading ADVANCED gets duplicate context
|
|
616
|
+
|
|
617
|
+
---
|
|
618
|
+
|
|
619
|
+
### CORRECT: Workflow Properly Split
|
|
620
|
+
|
|
621
|
+
#### process-basic.md (~500 tokens)
|
|
622
|
+
|
|
623
|
+
```markdown
|
|
624
|
+
# Process Context - Basic
|
|
625
|
+
|
|
626
|
+
**Development Workflow:**
|
|
627
|
+
1. Pick ticket from Jira "Ready" column
|
|
628
|
+
2. Create feature branch from `main`
|
|
629
|
+
3. Implement → Test → Create PR
|
|
630
|
+
4. Code review → Merge → Auto-deploy to staging
|
|
631
|
+
|
|
632
|
+
**Tools:**
|
|
633
|
+
- Jira: Task tracking
|
|
634
|
+
- GitHub: Code repository, PR reviews
|
|
635
|
+
- Slack: #engineering for questions
|
|
636
|
+
- Vercel: Staging/production hosting
|
|
637
|
+
|
|
638
|
+
**Team:**
|
|
639
|
+
- Frontend: Sarah (lead), Mike, Lisa
|
|
640
|
+
- Backend: James (lead), Chen, Alex
|
|
641
|
+
- DevOps: Taylor
|
|
642
|
+
- QA: Morgan
|
|
643
|
+
|
|
644
|
+
**Communication:**
|
|
645
|
+
- Daily standup: 10am PST in Zoom
|
|
646
|
+
- PR reviews: Tag reviewer in GitHub
|
|
647
|
+
- Urgent: #engineering-urgent in Slack
|
|
648
|
+
- Questions: #engineering in Slack
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
**Why this is correct:**
|
|
652
|
+
- Simple workflow overview (high-level steps)
|
|
653
|
+
- Just the basics: tools, team, communication
|
|
654
|
+
- No detailed requirements or standards
|
|
655
|
+
- ~500 tokens
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
#### process-advanced.md (~1000 tokens)
|
|
660
|
+
|
|
661
|
+
```markdown
|
|
662
|
+
# Process Context - Advanced
|
|
663
|
+
|
|
664
|
+
## Code Review Process
|
|
665
|
+
|
|
666
|
+
Assumes you've created a PR per basic workflow.
|
|
667
|
+
|
|
668
|
+
**PR Requirements:**
|
|
669
|
+
|
|
670
|
+
Must include:
|
|
671
|
+
- [ ] Title format: `feat|fix|refactor|docs: Description`
|
|
672
|
+
- [ ] Description of changes and why
|
|
673
|
+
- [ ] Test coverage for new code (see Testing Requirements)
|
|
674
|
+
- [ ] Updated documentation if API changed
|
|
675
|
+
- [ ] Screenshots if UI changed
|
|
676
|
+
|
|
677
|
+
**Reviewer Checklist:**
|
|
678
|
+
|
|
679
|
+
Reviewers must verify:
|
|
680
|
+
1. **Code Quality**
|
|
681
|
+
- Follows style guide (ESLint passing)
|
|
682
|
+
- No obvious bugs or edge cases
|
|
683
|
+
- Appropriate error handling
|
|
684
|
+
|
|
685
|
+
2. **Test Coverage**
|
|
686
|
+
- New code has unit tests
|
|
687
|
+
- Integration tests if API changed
|
|
688
|
+
- Coverage doesn't decrease
|
|
689
|
+
|
|
690
|
+
3. **Documentation**
|
|
691
|
+
- JSDoc for public functions
|
|
692
|
+
- README updated if setup changed
|
|
693
|
+
- API docs updated if endpoints changed
|
|
694
|
+
|
|
695
|
+
4. **Performance**
|
|
696
|
+
- No obvious N+1 queries
|
|
697
|
+
- Image optimization if media added
|
|
698
|
+
- Bundle size check for frontend
|
|
699
|
+
|
|
700
|
+
**Review SLA:**
|
|
701
|
+
- First review: Within 4 business hours
|
|
702
|
+
- Follow-up review: Within 2 business hours
|
|
703
|
+
- If blocked: Tag @eng-leads in Slack
|
|
704
|
+
|
|
705
|
+
**Approval Requirements:**
|
|
706
|
+
- Standard PR: 1 approval
|
|
707
|
+
- Infrastructure change: 2 approvals
|
|
708
|
+
- Payment/security code: Security team approval
|
|
709
|
+
|
|
710
|
+
**Merge Process:**
|
|
711
|
+
1. All CI checks pass (tests, lint, build)
|
|
712
|
+
2. All review comments resolved
|
|
713
|
+
3. Branch up-to-date with main
|
|
714
|
+
4. Use "Squash and merge"
|
|
715
|
+
5. Delete branch after merge
|
|
716
|
+
|
|
717
|
+
## Sprint Planning
|
|
718
|
+
|
|
719
|
+
**Schedule:** Every other Monday, 10am-12pm PST
|
|
720
|
+
|
|
721
|
+
**Preparation (Friday before):**
|
|
722
|
+
1. PMs add stories to "Backlog" with acceptance criteria
|
|
723
|
+
2. Eng leads add technical tasks
|
|
724
|
+
3. Team reviews backlog async (add questions as comments)
|
|
725
|
+
|
|
726
|
+
**Planning Meeting:**
|
|
727
|
+
1. Review sprint goal (15min)
|
|
728
|
+
2. Estimate stories (45min)
|
|
729
|
+
- Use Fibonacci: 1, 2, 3, 5, 8, 13
|
|
730
|
+
- Discussion if estimates differ by 2+ points
|
|
731
|
+
- Break down 13+ point stories
|
|
732
|
+
3. Commit to sprint scope (30min)
|
|
733
|
+
- Team capacity: 40 points per sprint (2 weeks)
|
|
734
|
+
- Leave 20% buffer for bugs/urgent
|
|
735
|
+
4. Assign stories (15min)
|
|
736
|
+
5. Confirm sprint goal (15min)
|
|
737
|
+
|
|
738
|
+
**Story Requirements:**
|
|
739
|
+
- User story format: "As a [user], I want [goal], so that [benefit]"
|
|
740
|
+
- Acceptance criteria (at least 3)
|
|
741
|
+
- Design mockup if UI work
|
|
742
|
+
- API contract if backend work
|
|
743
|
+
|
|
744
|
+
## Testing Requirements
|
|
745
|
+
|
|
746
|
+
**Unit Tests:**
|
|
747
|
+
- Required for: All new business logic
|
|
748
|
+
- Coverage: 80% minimum
|
|
749
|
+
- Tool: Jest
|
|
750
|
+
- Location: `__tests__` adjacent to source
|
|
751
|
+
|
|
752
|
+
**Integration Tests:**
|
|
753
|
+
- Required for: New API endpoints
|
|
754
|
+
- Coverage: All endpoints
|
|
755
|
+
- Tool: Supertest
|
|
756
|
+
- Location: `/tests/integration`
|
|
757
|
+
|
|
758
|
+
**E2E Tests:**
|
|
759
|
+
- Required for: Critical user paths
|
|
760
|
+
- Coverage: Checkout, signup, search
|
|
761
|
+
- Tool: Playwright
|
|
762
|
+
- Location: `/tests/e2e`
|
|
763
|
+
|
|
764
|
+
**Manual QA:**
|
|
765
|
+
- Required for: UI changes
|
|
766
|
+
- Who: Assign to @Morgan in PR
|
|
767
|
+
- Process: Test in staging, approve PR comment
|
|
768
|
+
|
|
769
|
+
## Release Process
|
|
770
|
+
|
|
771
|
+
**Schedule:** Daily at 2pm PST (Monday-Thursday)
|
|
772
|
+
|
|
773
|
+
**Pre-release:**
|
|
774
|
+
1. All PRs merged to `main` by 1pm
|
|
775
|
+
2. Staging validation (30min window)
|
|
776
|
+
3. Release manager checks:
|
|
777
|
+
- [ ] All tests passing
|
|
778
|
+
- [ ] No critical bugs in staging
|
|
779
|
+
- [ ] Rollback plan if risky change
|
|
780
|
+
|
|
781
|
+
**Release:**
|
|
782
|
+
1. Tag release: `git tag v1.x.x`
|
|
783
|
+
2. Push tag: Triggers production deploy (GitHub Actions)
|
|
784
|
+
3. Monitor for 30min:
|
|
785
|
+
- Error rate < 0.1%
|
|
786
|
+
- Response time < 200ms p95
|
|
787
|
+
- No customer reports
|
|
788
|
+
|
|
789
|
+
**Rollback:**
|
|
790
|
+
If errors exceed 0.1%:
|
|
791
|
+
1. Revert last commit or deploy previous tag
|
|
792
|
+
2. Post in #engineering-urgent
|
|
793
|
+
3. Create incident retro ticket
|
|
794
|
+
|
|
795
|
+
**Hotfix Process:**
|
|
796
|
+
For production bugs requiring immediate fix:
|
|
797
|
+
1. Create branch from `main`
|
|
798
|
+
2. Fix → Test → PR (requires 1 approval)
|
|
799
|
+
3. Deploy immediately (skip daily schedule)
|
|
800
|
+
4. Post-mortem within 24 hours
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
**Why this is correct:**
|
|
804
|
+
- ~1000 tokens
|
|
805
|
+
- Expands basic workflow with detailed requirements
|
|
806
|
+
- No duplication of basic steps (references them)
|
|
807
|
+
- Provides actionable guidance for complex scenarios
|
|
808
|
+
- Still no rationale (that's expert level)
|
|
809
|
+
|
|
810
|
+
---
|
|
811
|
+
|
|
812
|
+
#### process-expert.md (~1500 tokens)
|
|
813
|
+
|
|
814
|
+
```markdown
|
|
815
|
+
# Process Context - Expert
|
|
816
|
+
|
|
817
|
+
## Process Philosophy
|
|
818
|
+
|
|
819
|
+
**Core Principle:** Optimize for merge velocity, not perfect code.
|
|
820
|
+
|
|
821
|
+
**Rationale:**
|
|
822
|
+
We're a startup with 18-month runway. Time-to-market beats code perfection.
|
|
823
|
+
We accept technical debt in exchange for learning fast from customers.
|
|
824
|
+
|
|
825
|
+
**Evidence:**
|
|
826
|
+
- Experiment: Strict review (5 days to merge) vs loose review (1 day to merge)
|
|
827
|
+
- Result: 4x faster feature delivery, no increase in bugs
|
|
828
|
+
- Conclusion: Code review should focus on correctness, not style
|
|
829
|
+
|
|
830
|
+
**Trade-offs Accepted:**
|
|
831
|
+
- Some code duplication (acceptable if it ships faster)
|
|
832
|
+
- Inconsistent patterns across codebase (refactor later)
|
|
833
|
+
- Minimal documentation (prefer self-documenting code)
|
|
834
|
+
|
|
835
|
+
**Non-negotiables:**
|
|
836
|
+
- Test coverage (quality gate)
|
|
837
|
+
- Security review for auth/payment
|
|
838
|
+
- No direct commits to main
|
|
839
|
+
|
|
840
|
+
## Quality Governance
|
|
841
|
+
|
|
842
|
+
**Automated Quality Gates:**
|
|
843
|
+
|
|
844
|
+
Cannot merge without:
|
|
845
|
+
- [ ] 80% test coverage (enforced by CI)
|
|
846
|
+
- [ ] 0 TypeScript errors (enforced by CI)
|
|
847
|
+
- [ ] 0 ESLint errors (enforced by CI)
|
|
848
|
+
- [ ] All tests passing (enforced by CI)
|
|
849
|
+
- [ ] Build succeeds (enforced by CI)
|
|
850
|
+
|
|
851
|
+
**Manual Quality Gates:**
|
|
852
|
+
|
|
853
|
+
Required approvals by code area:
|
|
854
|
+
|
|
855
|
+
| Code Area | Approval Required |
|
|
856
|
+
|-----------|-------------------|
|
|
857
|
+
| Standard feature | Any team member (1) |
|
|
858
|
+
| Infrastructure | DevOps + 1 other (2) |
|
|
859
|
+
| Payment processing | Security team + Backend lead (2) |
|
|
860
|
+
| Database schema | Backend lead + CTO (2) |
|
|
861
|
+
| Auth/security | Security team + CTO (2) |
|
|
862
|
+
|
|
863
|
+
**Override Process:**
|
|
864
|
+
- Who: CTO only
|
|
865
|
+
- When: Customer-critical hotfix
|
|
866
|
+
- Requires: Post-mortem within 24h, tech debt ticket
|
|
867
|
+
|
|
868
|
+
## Decision Framework
|
|
869
|
+
|
|
870
|
+
**Process Change Decisions:**
|
|
871
|
+
|
|
872
|
+
All process changes require:
|
|
873
|
+
|
|
874
|
+
1. **RFC Document**
|
|
875
|
+
- Problem statement
|
|
876
|
+
- Proposed solution
|
|
877
|
+
- Alternatives considered
|
|
878
|
+
- Impact analysis (time, cost, risk)
|
|
879
|
+
|
|
880
|
+
2. **Trial Period**
|
|
881
|
+
- Duration: 2 weeks minimum
|
|
882
|
+
- Metrics: Define success criteria upfront
|
|
883
|
+
- Review: Team retro to evaluate
|
|
884
|
+
|
|
885
|
+
3. **Approval**
|
|
886
|
+
- Voting: 66% team approval required
|
|
887
|
+
- Vetoes: CTO can veto if business risk
|
|
888
|
+
- Documentation: Update process docs before rollout
|
|
889
|
+
|
|
890
|
+
**Example: PR Template Change**
|
|
891
|
+
- Problem: PRs missing context, slowing reviews
|
|
892
|
+
- Solution: Mandatory PR template
|
|
893
|
+
- Metrics: Review time, PR iterations
|
|
894
|
+
- Result: 30% faster reviews, approved
|
|
895
|
+
|
|
896
|
+
## Process Evolution
|
|
897
|
+
|
|
898
|
+
**Continuous Improvement:**
|
|
899
|
+
|
|
900
|
+
We revisit processes quarterly (every 3 months).
|
|
901
|
+
|
|
902
|
+
**Retrospective Format:**
|
|
903
|
+
1. **What's working?** (keep doing)
|
|
904
|
+
2. **What's not?** (stop doing)
|
|
905
|
+
3. **What should we try?** (experiment)
|
|
906
|
+
|
|
907
|
+
**Historical Changes:**
|
|
908
|
+
|
|
909
|
+
| Quarter | Change | Rationale | Result |
|
|
910
|
+
|---------|--------|-----------|--------|
|
|
911
|
+
| Q1 2024 | Daily deploys | Reduce merge conflicts | 50% fewer conflicts |
|
|
912
|
+
| Q2 2024 | Async standup | Distributed team | 30min/day saved |
|
|
913
|
+
| Q3 2024 | Squash merge | Cleaner history | Easier rollbacks |
|
|
914
|
+
| Q4 2024 | PR templates | Faster reviews | 30% time savings |
|
|
915
|
+
|
|
916
|
+
**Failed Experiments:**
|
|
917
|
+
|
|
918
|
+
| Experiment | Why Failed | Lesson Learned |
|
|
919
|
+
|------------|-----------|----------------|
|
|
920
|
+
| Pair programming (all tasks) | 50% slower | Use only for complex features |
|
|
921
|
+
| Weekly deploys | Merge conflicts | Daily is better |
|
|
922
|
+
| No code review | 3x bug rate | Quality gate necessary |
|
|
923
|
+
|
|
924
|
+
## Standards Rationale
|
|
925
|
+
|
|
926
|
+
**Why These Standards?**
|
|
927
|
+
|
|
928
|
+
**80% Test Coverage:**
|
|
929
|
+
- Below 80%: Bug rate increases 3x
|
|
930
|
+
- Above 90%: Diminishing returns (time cost > benefit)
|
|
931
|
+
- Sweet spot: 80-85%
|
|
932
|
+
|
|
933
|
+
**Squash and Merge:**
|
|
934
|
+
- Cleaner git history (1 commit per feature)
|
|
935
|
+
- Easier rollbacks (revert single commit)
|
|
936
|
+
- Simpler cherry-picking
|
|
937
|
+
- Trade-off: Lose granular commit history
|
|
938
|
+
|
|
939
|
+
**4-Hour Review SLA:**
|
|
940
|
+
- Longer: Context switching kills productivity
|
|
941
|
+
- Shorter: Interrupts deep work
|
|
942
|
+
- Balance: 4 hours allows batch review
|
|
943
|
+
|
|
944
|
+
**Fibonacci Estimation:**
|
|
945
|
+
- Linear (1,2,3,4) is too precise (false confidence)
|
|
946
|
+
- Fibonacci (1,2,3,5,8) reflects uncertainty
|
|
947
|
+
- Forces conversation when estimates differ
|
|
948
|
+
|
|
949
|
+
## Risk Management
|
|
950
|
+
|
|
951
|
+
**Process-Related Risks:**
|
|
952
|
+
|
|
953
|
+
**1. Review Bottleneck**
|
|
954
|
+
- Risk: Only 1 senior dev can review security code
|
|
955
|
+
- Impact: Delays in payment features
|
|
956
|
+
- Mitigation: Train 2 more devs on security review
|
|
957
|
+
- Trigger: Review SLA miss 3x in 2 weeks
|
|
958
|
+
|
|
959
|
+
**2. Deploy Failure**
|
|
960
|
+
- Risk: Production deploy breaks site
|
|
961
|
+
- Impact: Revenue loss, customer trust
|
|
962
|
+
- Mitigation: Automated rollback, feature flags
|
|
963
|
+
- Response: Rollback within 5 minutes
|
|
964
|
+
|
|
965
|
+
**3. Process Overhead**
|
|
966
|
+
- Risk: Process slows team as we grow
|
|
967
|
+
- Impact: Reduced velocity
|
|
968
|
+
- Mitigation: Quarterly retro, kill low-value process
|
|
969
|
+
- Trigger: Sprint velocity drops 20%
|
|
970
|
+
|
|
971
|
+
**4. Quality Degradation**
|
|
972
|
+
- Risk: Fast shipping compromises quality
|
|
973
|
+
- Impact: Technical debt, customer bugs
|
|
974
|
+
- Mitigation: Enforce quality gates, dedicate 20% time to refactoring
|
|
975
|
+
- Trigger: Bug rate exceeds 0.1% of requests
|
|
976
|
+
|
|
977
|
+
## Compliance Requirements
|
|
978
|
+
|
|
979
|
+
**SOC 2 Compliance:**
|
|
980
|
+
- Code review required (audit trail)
|
|
981
|
+
- Deployment approvals required
|
|
982
|
+
- No direct production access (must deploy via CI)
|
|
983
|
+
|
|
984
|
+
**Evidence Collection:**
|
|
985
|
+
- PR approvals logged in GitHub
|
|
986
|
+
- Deploy logs in CloudWatch (7-year retention)
|
|
987
|
+
- Access logs for production systems
|
|
988
|
+
|
|
989
|
+
**Audit Preparation:**
|
|
990
|
+
- Quarterly review of process compliance
|
|
991
|
+
- Annual audit by external firm
|
|
992
|
+
- Document all process exceptions
|
|
993
|
+
```
|
|
994
|
+
|
|
995
|
+
**Why this is correct:**
|
|
996
|
+
- ~1500 tokens
|
|
997
|
+
- Strategic process philosophy and WHY
|
|
998
|
+
- Governance and decision frameworks
|
|
999
|
+
- Process evolution and learnings
|
|
1000
|
+
- Risk management
|
|
1001
|
+
- No duplication of workflow steps or requirements
|
|
1002
|
+
- Provides context for process decisions
|
|
1003
|
+
|
|
1004
|
+
---
|
|
1005
|
+
|
|
1006
|
+
## Example 4: Complete Process Context - All Three Levels
|
|
1007
|
+
|
|
1008
|
+
### Scenario
|
|
1009
|
+
SaaS company with agile development process, showing complete context set.
|
|
1010
|
+
|
|
1011
|
+
---
|
|
1012
|
+
|
|
1013
|
+
### process-basic.md (~500 tokens)
|
|
1014
|
+
|
|
1015
|
+
```markdown
|
|
1016
|
+
# Process Context - Basic
|
|
1017
|
+
|
|
1018
|
+
**Development Workflow:**
|
|
1019
|
+
1. Pick ticket from Jira "Sprint Backlog"
|
|
1020
|
+
2. Create feature branch: `feature/PROJ-123-description`
|
|
1021
|
+
3. Code → Test → Push
|
|
1022
|
+
4. Create PR → Request review
|
|
1023
|
+
5. Merge → Auto-deploy to staging
|
|
1024
|
+
6. QA verification → Deploy to production
|
|
1025
|
+
|
|
1026
|
+
**Tools:**
|
|
1027
|
+
- Jira: Sprint planning, task tracking
|
|
1028
|
+
- GitHub: Code repository, pull requests
|
|
1029
|
+
- Slack: Team communication
|
|
1030
|
+
- Vercel: Hosting (staging + production)
|
|
1031
|
+
- Sentry: Error tracking
|
|
1032
|
+
- DataDog: Monitoring
|
|
1033
|
+
|
|
1034
|
+
**Team Structure:**
|
|
1035
|
+
|
|
1036
|
+
**Engineering (12 people):**
|
|
1037
|
+
- Frontend Team (4): Emma (lead), Ryan, Priya, Jordan
|
|
1038
|
+
- Backend Team (5): Marcus (lead), Sofia, Lin, Ahmed, Kai
|
|
1039
|
+
- DevOps (2): Taylor (lead), Chris
|
|
1040
|
+
- QA (1): Morgan
|
|
1041
|
+
|
|
1042
|
+
**Product (3):**
|
|
1043
|
+
- PM: Alexis
|
|
1044
|
+
- Designer: Sam
|
|
1045
|
+
- Product Analyst: Jamie
|
|
1046
|
+
|
|
1047
|
+
**Communication Channels:**
|
|
1048
|
+
- #engineering: General engineering discussion
|
|
1049
|
+
- #engineering-urgent: P0 bugs, production issues
|
|
1050
|
+
- #frontend / #backend: Team-specific channels
|
|
1051
|
+
- #deployments: Deployment notifications
|
|
1052
|
+
- #product: Product discussions
|
|
1053
|
+
|
|
1054
|
+
**Key Contacts:**
|
|
1055
|
+
- Blocked on code review: Tag @eng-leads
|
|
1056
|
+
- Production bug: Post in #engineering-urgent, tag @taylor
|
|
1057
|
+
- Product question: Ask in #product or DM @alexis
|
|
1058
|
+
- Design question: Ask @sam in #frontend
|
|
1059
|
+
|
|
1060
|
+
**Working Hours:**
|
|
1061
|
+
- Core hours: 10am-4pm PST (team overlap)
|
|
1062
|
+
- Async-friendly: Distributed team (PST, EST, CET)
|
|
1063
|
+
- On-call rotation: DevOps team, 24/7 coverage
|
|
1064
|
+
|
|
1065
|
+
**Documentation:**
|
|
1066
|
+
- Engineering docs: `/docs` in repository
|
|
1067
|
+
- Product specs: Jira tickets
|
|
1068
|
+
- Architecture decisions: `/docs/adr`
|
|
1069
|
+
- Runbooks: Notion wiki
|
|
1070
|
+
```
|
|
1071
|
+
|
|
1072
|
+
---
|
|
1073
|
+
|
|
1074
|
+
### process-advanced.md (~1000 tokens)
|
|
1075
|
+
|
|
1076
|
+
```markdown
|
|
1077
|
+
# Process Context - Advanced
|
|
1078
|
+
|
|
1079
|
+
## Code Review Process
|
|
1080
|
+
|
|
1081
|
+
**PR Requirements:**
|
|
1082
|
+
|
|
1083
|
+
Every PR must have:
|
|
1084
|
+
- [ ] Title: `[PROJ-123] feat: Description` (Jira ticket required)
|
|
1085
|
+
- [ ] Description: What changed and why
|
|
1086
|
+
- [ ] Test plan: How you tested this
|
|
1087
|
+
- [ ] Screenshots (if UI change)
|
|
1088
|
+
- [ ] Documentation updates (if API/setup changed)
|
|
1089
|
+
|
|
1090
|
+
**CI Checks (must pass):**
|
|
1091
|
+
- [ ] Unit tests (Jest)
|
|
1092
|
+
- [ ] Integration tests (Supertest)
|
|
1093
|
+
- [ ] E2E tests (Playwright) - for UI changes
|
|
1094
|
+
- [ ] Linting (ESLint, Prettier)
|
|
1095
|
+
- [ ] Type checking (TypeScript)
|
|
1096
|
+
- [ ] Build succeeds
|
|
1097
|
+
- [ ] Test coverage ≥80%
|
|
1098
|
+
|
|
1099
|
+
**Review Assignments:**
|
|
1100
|
+
- Frontend PR: 1 frontend team member
|
|
1101
|
+
- Backend PR: 1 backend team member
|
|
1102
|
+
- Full-stack PR: 1 from each team
|
|
1103
|
+
- Infrastructure PR: DevOps + 1 eng lead
|
|
1104
|
+
|
|
1105
|
+
**Review SLA:**
|
|
1106
|
+
- First review: 4 hours
|
|
1107
|
+
- Follow-up: 2 hours
|
|
1108
|
+
- After hours: Next business day
|
|
1109
|
+
|
|
1110
|
+
**Approval & Merge:**
|
|
1111
|
+
1. Get required approvals
|
|
1112
|
+
2. Resolve all comments
|
|
1113
|
+
3. Ensure CI green
|
|
1114
|
+
4. Squash and merge
|
|
1115
|
+
5. Delete feature branch
|
|
1116
|
+
6. Move Jira ticket to "In QA"
|
|
1117
|
+
|
|
1118
|
+
---
|
|
1119
|
+
|
|
1120
|
+
## Sprint Planning
|
|
1121
|
+
|
|
1122
|
+
**Sprint Duration:** 2 weeks (10 business days)
|
|
1123
|
+
|
|
1124
|
+
**Sprint Ceremonies:**
|
|
1125
|
+
|
|
1126
|
+
**Monday Week 1 (Sprint Start):**
|
|
1127
|
+
- 10:00am: Sprint planning (2 hours)
|
|
1128
|
+
- Review sprint goal
|
|
1129
|
+
- Estimate and commit to stories
|
|
1130
|
+
- Capacity: 50 points (team of 12)
|
|
1131
|
+
|
|
1132
|
+
**Daily (async):**
|
|
1133
|
+
- By 11am PST: Post standup in Slack
|
|
1134
|
+
- Yesterday: What shipped
|
|
1135
|
+
- Today: What working on
|
|
1136
|
+
- Blockers: Tag relevant people
|
|
1137
|
+
|
|
1138
|
+
**Wednesday Week 1:**
|
|
1139
|
+
- 2pm: Design review (1 hour)
|
|
1140
|
+
- Review upcoming designs
|
|
1141
|
+
- Flag technical constraints
|
|
1142
|
+
|
|
1143
|
+
**Monday Week 2:**
|
|
1144
|
+
- 10am: Sprint sync (30min)
|
|
1145
|
+
- Progress check
|
|
1146
|
+
- Re-prioritize if needed
|
|
1147
|
+
|
|
1148
|
+
**Friday Week 2 (Sprint End):**
|
|
1149
|
+
- 2pm: Sprint retro (1 hour)
|
|
1150
|
+
- What went well
|
|
1151
|
+
- What didn't
|
|
1152
|
+
- Action items for next sprint
|
|
1153
|
+
- 3pm: Demo to stakeholders (30min)
|
|
1154
|
+
|
|
1155
|
+
**Story Estimation:**
|
|
1156
|
+
- Scale: 1, 2, 3, 5, 8, 13 points
|
|
1157
|
+
- 1 point ≈ 0.5 days
|
|
1158
|
+
- 13 points = too big, break down
|
|
1159
|
+
- Estimation poker: Discuss if spread >2 points
|
|
1160
|
+
|
|
1161
|
+
**Story Requirements:**
|
|
1162
|
+
- User story: "As [user], I want [goal], so that [benefit]"
|
|
1163
|
+
- Acceptance criteria (min 3)
|
|
1164
|
+
- Design mockup (if UI)
|
|
1165
|
+
- API spec (if backend)
|
|
1166
|
+
- Effort estimate
|
|
1167
|
+
- Dependencies noted
|
|
1168
|
+
|
|
1169
|
+
---
|
|
1170
|
+
|
|
1171
|
+
## Testing Requirements
|
|
1172
|
+
|
|
1173
|
+
**Test Pyramid:**
|
|
1174
|
+
|
|
1175
|
+
```
|
|
1176
|
+
/\
|
|
1177
|
+
/E2E\ 10% - Critical paths
|
|
1178
|
+
/------\
|
|
1179
|
+
/ API \ 30% - Endpoint testing
|
|
1180
|
+
/----------\
|
|
1181
|
+
/ Unit \ 60% - Business logic
|
|
1182
|
+
```
|
|
1183
|
+
|
|
1184
|
+
**Unit Tests (Jest):**
|
|
1185
|
+
- Location: `__tests__/` next to source file
|
|
1186
|
+
- Coverage: 80% minimum
|
|
1187
|
+
- Focus: Business logic, utilities, helpers
|
|
1188
|
+
- Example: `user.service.test.ts`
|
|
1189
|
+
|
|
1190
|
+
**Integration Tests (Supertest):**
|
|
1191
|
+
- Location: `/tests/integration`
|
|
1192
|
+
- Coverage: All API endpoints
|
|
1193
|
+
- Focus: Request/response, auth, validation
|
|
1194
|
+
- Example: `POST /api/users returns 201 with valid data`
|
|
1195
|
+
|
|
1196
|
+
**E2E Tests (Playwright):**
|
|
1197
|
+
- Location: `/tests/e2e`
|
|
1198
|
+
- Coverage: Critical user flows
|
|
1199
|
+
- User signup/login
|
|
1200
|
+
- Purchase flow
|
|
1201
|
+
- Profile editing
|
|
1202
|
+
- Run: Pre-production deploy only (slow)
|
|
1203
|
+
|
|
1204
|
+
**Manual QA:**
|
|
1205
|
+
- When: All UI changes
|
|
1206
|
+
- Who: @morgan (QA)
|
|
1207
|
+
- Where: Staging environment
|
|
1208
|
+
- Evidence: Screenshots in Jira ticket
|
|
1209
|
+
|
|
1210
|
+
---
|
|
1211
|
+
|
|
1212
|
+
## Release Process
|
|
1213
|
+
|
|
1214
|
+
**Staging Deploys:**
|
|
1215
|
+
- Trigger: Every merge to `main`
|
|
1216
|
+
- Automated: GitHub Actions
|
|
1217
|
+
- Time: ~3 minutes
|
|
1218
|
+
- URL: staging.company.com
|
|
1219
|
+
|
|
1220
|
+
**Production Deploys:**
|
|
1221
|
+
- Schedule: Tuesday/Thursday 2pm PST
|
|
1222
|
+
- Process:
|
|
1223
|
+
1. QA approves all tickets in staging
|
|
1224
|
+
2. Release manager creates release PR
|
|
1225
|
+
3. Engineering lead reviews changelog
|
|
1226
|
+
4. Merge release PR → auto-deploy
|
|
1227
|
+
5. Monitor for 30min
|
|
1228
|
+
|
|
1229
|
+
**Monitoring During Deploy:**
|
|
1230
|
+
- Error rate: Must stay <0.1%
|
|
1231
|
+
- Response time: p95 <200ms
|
|
1232
|
+
- Sentry: No new error types
|
|
1233
|
+
- DataDog: Watch dashboards
|
|
1234
|
+
|
|
1235
|
+
**Rollback Process:**
|
|
1236
|
+
1. Click "Rollback" in Vercel (1-click)
|
|
1237
|
+
2. Post in #engineering-urgent
|
|
1238
|
+
3. Create postmortem ticket
|
|
1239
|
+
4. Fix forward in next deploy
|
|
1240
|
+
|
|
1241
|
+
**Hotfix Process:**
|
|
1242
|
+
For P0 production bugs:
|
|
1243
|
+
1. Create hotfix branch from `main`
|
|
1244
|
+
2. Fix → Test → PR (fast-track review)
|
|
1245
|
+
3. Deploy immediately (skip schedule)
|
|
1246
|
+
4. Postmortem within 24 hours
|
|
1247
|
+
|
|
1248
|
+
---
|
|
1249
|
+
|
|
1250
|
+
## Incident Response
|
|
1251
|
+
|
|
1252
|
+
**Severity Levels:**
|
|
1253
|
+
|
|
1254
|
+
**P0 - Critical:**
|
|
1255
|
+
- Site down or major feature broken
|
|
1256
|
+
- Data loss or security breach
|
|
1257
|
+
- Response: Immediate, all-hands
|
|
1258
|
+
|
|
1259
|
+
**P1 - High:**
|
|
1260
|
+
- Feature degraded but site functional
|
|
1261
|
+
- Response: Within 2 hours
|
|
1262
|
+
|
|
1263
|
+
**P2 - Medium:**
|
|
1264
|
+
- Minor bug, workaround exists
|
|
1265
|
+
- Response: Next sprint
|
|
1266
|
+
|
|
1267
|
+
**P3 - Low:**
|
|
1268
|
+
- Cosmetic issue, no user impact
|
|
1269
|
+
- Response: Backlog
|
|
1270
|
+
|
|
1271
|
+
**P0 Response Process:**
|
|
1272
|
+
1. Post in #engineering-urgent
|
|
1273
|
+
2. Tag @devops-oncall
|
|
1274
|
+
3. Create Jira incident ticket
|
|
1275
|
+
4. Start incident doc (Google Doc)
|
|
1276
|
+
5. Assign incident commander
|
|
1277
|
+
6. Fix or rollback
|
|
1278
|
+
7. Postmortem within 24h
|
|
1279
|
+
|
|
1280
|
+
**Postmortem Format:**
|
|
1281
|
+
- Timeline of events
|
|
1282
|
+
- Root cause
|
|
1283
|
+
- Impact (users, revenue)
|
|
1284
|
+
- Fix applied
|
|
1285
|
+
- Prevention plan
|
|
1286
|
+
```
|
|
1287
|
+
|
|
1288
|
+
---
|
|
1289
|
+
|
|
1290
|
+
### process-expert.md (~1500 tokens)
|
|
1291
|
+
|
|
1292
|
+
```markdown
|
|
1293
|
+
# Process Context - Expert
|
|
1294
|
+
|
|
1295
|
+
## Process Philosophy
|
|
1296
|
+
|
|
1297
|
+
**Core Belief:** Ship fast, learn fast, iterate.
|
|
1298
|
+
|
|
1299
|
+
**Rationale:**
|
|
1300
|
+
As a Series A startup (2 years runway), our competitive advantage is speed.
|
|
1301
|
+
Perfect code matters less than validated learning.
|
|
1302
|
+
|
|
1303
|
+
**Supporting Evidence:**
|
|
1304
|
+
- Deployed 127 features in Q3 2024 vs competitors' ~40
|
|
1305
|
+
- 23% were removed after learning users didn't use them
|
|
1306
|
+
- This validated our "ship and learn" approach
|
|
1307
|
+
- Quality metrics stable: 0.08% error rate (within SLA)
|
|
1308
|
+
|
|
1309
|
+
**Trade-offs We Accept:**
|
|
1310
|
+
1. **Technical debt for speed**:
|
|
1311
|
+
- We ship MVPs with known limitations
|
|
1312
|
+
- Document debt in Jira, prioritize in future sprints
|
|
1313
|
+
- Metric: Tech debt <20% of sprint capacity
|
|
1314
|
+
|
|
1315
|
+
2. **Inconsistent patterns for autonomy**:
|
|
1316
|
+
- Teams can choose patterns (React Query vs Redux)
|
|
1317
|
+
- Prefer team velocity over consistency
|
|
1318
|
+
- Revisit: If onboarding time exceeds 2 weeks
|
|
1319
|
+
|
|
1320
|
+
3. **Minimal documentation for agility**:
|
|
1321
|
+
- Code should be self-documenting
|
|
1322
|
+
- Document only: API contracts, architecture decisions
|
|
1323
|
+
- Trade-off: Steeper learning curve for new hires
|
|
1324
|
+
|
|
1325
|
+
**Non-Negotiables:**
|
|
1326
|
+
- Test coverage 80%+ (quality floor)
|
|
1327
|
+
- Security review for auth/payment
|
|
1328
|
+
- Accessibility WCAG AA (legal requirement)
|
|
1329
|
+
- No direct production access (compliance)
|
|
1330
|
+
|
|
1331
|
+
## Quality Governance
|
|
1332
|
+
|
|
1333
|
+
**Quality Gate Philosophy:**
|
|
1334
|
+
|
|
1335
|
+
We enforce automated gates (fast feedback) over manual gates (bottlenecks).
|
|
1336
|
+
|
|
1337
|
+
**Automated Gates (CI):**
|
|
1338
|
+
|
|
1339
|
+
Cannot merge without:
|
|
1340
|
+
- 80% test coverage (Codecov)
|
|
1341
|
+
- 0 TypeScript errors
|
|
1342
|
+
- 0 ESLint errors (auto-fixable run on commit)
|
|
1343
|
+
- All tests passing
|
|
1344
|
+
- Build succeeds
|
|
1345
|
+
- Bundle size <500kb (performance budget)
|
|
1346
|
+
- Lighthouse score >90 (performance/a11y)
|
|
1347
|
+
|
|
1348
|
+
**Manual Gates:**
|
|
1349
|
+
|
|
1350
|
+
Required approvals by risk level:
|
|
1351
|
+
|
|
1352
|
+
| Risk Level | Examples | Approvals Required |
|
|
1353
|
+
|------------|----------|-------------------|
|
|
1354
|
+
| Low | Feature work, bug fixes | 1 peer |
|
|
1355
|
+
| Medium | Database migrations, API changes | 1 peer + eng lead |
|
|
1356
|
+
| High | Auth changes, payment processing | 2 peers + security team |
|
|
1357
|
+
| Critical | Infrastructure, deployment config | DevOps + CTO |
|
|
1358
|
+
|
|
1359
|
+
**Why These Gates?**
|
|
1360
|
+
- Low: Peer review catches 60% of bugs (research shows)
|
|
1361
|
+
- Medium: Schema changes need DBA expertise
|
|
1362
|
+
- High: Security vulnerabilities cost $4M average (IBM study)
|
|
1363
|
+
- Critical: Outages cost $5k/min revenue
|
|
1364
|
+
|
|
1365
|
+
**Gate Override Process:**
|
|
1366
|
+
- **Who can override:** CTO only
|
|
1367
|
+
- **When:** Customer-critical hotfix, immediate revenue impact
|
|
1368
|
+
- **Requirements:**
|
|
1369
|
+
- Document reason in PR
|
|
1370
|
+
- Create tech debt ticket
|
|
1371
|
+
- Postmortem within 24h
|
|
1372
|
+
- **Frequency:** 2-3 times/quarter (acceptable)
|
|
1373
|
+
|
|
1374
|
+
**Gate Evolution:**
|
|
1375
|
+
- **Review:** Quarterly in engineering all-hands
|
|
1376
|
+
- **Metrics:** Merge time, bug escape rate, developer satisfaction
|
|
1377
|
+
- **Last change:** Removed manual design review (bottleneck, no bug reduction)
|
|
1378
|
+
|
|
1379
|
+
---
|
|
1380
|
+
|
|
1381
|
+
## Decision Framework
|
|
1382
|
+
|
|
1383
|
+
**Process Changes Require:**
|
|
1384
|
+
|
|
1385
|
+
1. **RFC (Request for Comments)**
|
|
1386
|
+
- **Template:** `/docs/rfcs/template.md`
|
|
1387
|
+
- **Sections:**
|
|
1388
|
+
- Problem statement (current pain)
|
|
1389
|
+
- Proposed solution
|
|
1390
|
+
- Alternatives considered
|
|
1391
|
+
- Impact analysis (time, cost, risk)
|
|
1392
|
+
- Success metrics
|
|
1393
|
+
- **Distribution:** Post in #engineering, 5-day comment period
|
|
1394
|
+
|
|
1395
|
+
2. **Trial Period**
|
|
1396
|
+
- **Duration:** 2-4 weeks (1-2 sprints)
|
|
1397
|
+
- **Metrics:** Define upfront in RFC
|
|
1398
|
+
- **Examples:**
|
|
1399
|
+
- PR template: Measure review time
|
|
1400
|
+
- Async standup: Measure meeting time saved
|
|
1401
|
+
|
|
1402
|
+
3. **Approval Vote**
|
|
1403
|
+
- **Who votes:** All engineers
|
|
1404
|
+
- **Threshold:** 66% approval (2/3 majority)
|
|
1405
|
+
- **Veto power:** CTO (business risk), eng leads (technical risk)
|
|
1406
|
+
|
|
1407
|
+
4. **Rollout**
|
|
1408
|
+
- Update documentation before enforcement
|
|
1409
|
+
- Announce in #engineering
|
|
1410
|
+
- Provide training if needed
|
|
1411
|
+
|
|
1412
|
+
**Example: Adopting Async Standup**
|
|
1413
|
+
|
|
1414
|
+
| Phase | Action | Result |
|
|
1415
|
+
|-------|--------|--------|
|
|
1416
|
+
| RFC | Problem: 30min daily standup, 10 people = 5hrs/day | Posted in #engineering |
|
|
1417
|
+
| Proposal | Async in Slack by 11am PST | 3-day comment period |
|
|
1418
|
+
| Trial | 2 weeks (Sept 1-14, 2024) | Measured: time saved, blockers missed |
|
|
1419
|
+
| Metrics | Saved: 4.5hrs/day, Missed blockers: 0 | Success |
|
|
1420
|
+
| Vote | 10 approve, 1 abstain, 0 veto | Approved |
|
|
1421
|
+
| Rollout | Updated docs, announced Sept 15 | Permanent |
|
|
1422
|
+
|
|
1423
|
+
---
|
|
1424
|
+
|
|
1425
|
+
## Process Evolution
|
|
1426
|
+
|
|
1427
|
+
**Continuous Improvement Approach:**
|
|
1428
|
+
|
|
1429
|
+
**Quarterly Process Review:**
|
|
1430
|
+
- When: Last Friday of each quarter
|
|
1431
|
+
- Format: Engineering all-hands (2 hours)
|
|
1432
|
+
- Agenda:
|
|
1433
|
+
1. **Metrics review** (30min): Velocity, quality, satisfaction
|
|
1434
|
+
2. **What to keep** (30min): Processes that work
|
|
1435
|
+
3. **What to kill** (30min): Low-value processes
|
|
1436
|
+
4. **What to try** (30min): New experiments
|
|
1437
|
+
|
|
1438
|
+
**Historical Changes:**
|
|
1439
|
+
|
|
1440
|
+
| Quarter | Change | Rationale | Impact |
|
|
1441
|
+
|---------|--------|-----------|--------|
|
|
1442
|
+
| Q1 2024 | Daily → Async standup | Distributed team, time zones | -4.5hrs/day |
|
|
1443
|
+
| Q1 2024 | Weekly → Daily deploys | Reduce merge conflicts | -40% conflicts |
|
|
1444
|
+
| Q2 2024 | Added PR templates | Missing context in PRs | -25% review time |
|
|
1445
|
+
| Q2 2024 | Squash merge | Cleaner git history | Easier rollbacks |
|
|
1446
|
+
| Q3 2024 | Removed design sign-off gate | Bottleneck, no bug reduction | +15% velocity |
|
|
1447
|
+
| Q4 2024 | Added bundle size budget | Performance degradation | p95 latency -30% |
|
|
1448
|
+
|
|
1449
|
+
**Failed Experiments:**
|
|
1450
|
+
|
|
1451
|
+
| Experiment | Trial Period | Why Failed | Lesson |
|
|
1452
|
+
|------------|--------------|------------|--------|
|
|
1453
|
+
| No code review | Q1 2024, 2 weeks | Bug rate tripled | Quality gate necessary |
|
|
1454
|
+
| Pair programming (all tasks) | Q2 2024, 4 weeks | Velocity halved | Use for complex features only |
|
|
1455
|
+
| Weekly deploys | Q3 2024, 4 weeks | Merge conflicts increased | Daily better for our cadence |
|
|
1456
|
+
| Mandatory design review | Q4 2024, 4 weeks | No bug reduction, 3-day delays | Async review sufficient |
|
|
1457
|
+
|
|
1458
|
+
**Process Metrics (Current):**
|
|
1459
|
+
- Sprint velocity: 50 points (stable)
|
|
1460
|
+
- Merge time: 6 hours median (target: <8hrs)
|
|
1461
|
+
- Bug escape rate: 0.08% (target: <0.1%)
|
|
1462
|
+
- Developer satisfaction: 7.8/10 (survey)
|
|
1463
|
+
|
|
1464
|
+
---
|
|
1465
|
+
|
|
1466
|
+
## Standards Rationale
|
|
1467
|
+
|
|
1468
|
+
**Why 80% Test Coverage?**
|
|
1469
|
+
|
|
1470
|
+
Research-backed threshold:
|
|
1471
|
+
- <80%: Bug escape rate increases exponentially
|
|
1472
|
+
- 80-85%: Optimal (diminishing returns above)
|
|
1473
|
+
- >90%: Time cost exceeds benefit (2x test time for 5% coverage gain)
|
|
1474
|
+
|
|
1475
|
+
Our data:
|
|
1476
|
+
- At 70% coverage: 0.15% error rate
|
|
1477
|
+
- At 80% coverage: 0.08% error rate
|
|
1478
|
+
- At 85% coverage: 0.08% error rate (no improvement)
|
|
1479
|
+
|
|
1480
|
+
**Why Squash and Merge?**
|
|
1481
|
+
|
|
1482
|
+
Benefits:
|
|
1483
|
+
- Clean git history (1 commit per feature)
|
|
1484
|
+
- Easy rollbacks (revert single commit)
|
|
1485
|
+
- Simple cherry-picking to hotfix branches
|
|
1486
|
+
|
|
1487
|
+
Trade-offs:
|
|
1488
|
+
- Lose granular commit history
|
|
1489
|
+
- Can't revert part of a feature
|
|
1490
|
+
|
|
1491
|
+
Decision: We value simple rollbacks over granular history.
|
|
1492
|
+
|
|
1493
|
+
**Why 4-Hour Review SLA?**
|
|
1494
|
+
|
|
1495
|
+
Optimization research:
|
|
1496
|
+
- <2 hours: Interrupts deep work (context switching cost)
|
|
1497
|
+
- >8 hours: Author loses context (must re-review own code)
|
|
1498
|
+
- 4 hours: Balance batch review and author context retention
|
|
1499
|
+
|
|
1500
|
+
Our data:
|
|
1501
|
+
- Median review time: 3.2 hours
|
|
1502
|
+
- 90th percentile: 7.5 hours (acceptable)
|
|
1503
|
+
- Violations: 8% (mostly timezone issues)
|
|
1504
|
+
|
|
1505
|
+
**Why Fibonacci Estimation?**
|
|
1506
|
+
|
|
1507
|
+
Psychological research:
|
|
1508
|
+
- Linear (1,2,3,4): False precision, overconfidence
|
|
1509
|
+
- Fibonacci (1,2,3,5,8): Reflects uncertainty
|
|
1510
|
+
- Forces conversation when estimates differ
|
|
1511
|
+
|
|
1512
|
+
Our approach:
|
|
1513
|
+
- <5 points: High confidence
|
|
1514
|
+
- 8 points: Moderate uncertainty
|
|
1515
|
+
- 13 points: Too uncertain, break down
|
|
1516
|
+
|
|
1517
|
+
---
|
|
1518
|
+
|
|
1519
|
+
## Risk Management
|
|
1520
|
+
|
|
1521
|
+
**Process-Related Risks:**
|
|
1522
|
+
|
|
1523
|
+
**1. Quality Degradation**
|
|
1524
|
+
- **Risk:** Fast shipping leads to technical debt spiral
|
|
1525
|
+
- **Likelihood:** Medium
|
|
1526
|
+
- **Impact:** High (customer churn, rewrite cost)
|
|
1527
|
+
- **Indicators:**
|
|
1528
|
+
- Bug rate >0.1%
|
|
1529
|
+
- Tech debt >25% of sprint
|
|
1530
|
+
- Test coverage <75%
|
|
1531
|
+
- **Mitigation:**
|
|
1532
|
+
- Enforce 80% coverage (automated gate)
|
|
1533
|
+
- Reserve 20% sprint capacity for refactoring
|
|
1534
|
+
- Quarterly tech debt review
|
|
1535
|
+
- **Response:** If triggered, freeze features for 1 sprint, focus on quality
|
|
1536
|
+
|
|
1537
|
+
**2. Review Bottleneck**
|
|
1538
|
+
- **Risk:** Senior devs are review bottleneck (security, infrastructure)
|
|
1539
|
+
- **Likelihood:** High
|
|
1540
|
+
- **Impact:** Medium (deploy delays, feature delays)
|
|
1541
|
+
- **Indicators:**
|
|
1542
|
+
- Review SLA violations >20%
|
|
1543
|
+
- PRs waiting >24h
|
|
1544
|
+
- **Mitigation:**
|
|
1545
|
+
- Train 2 more devs on security review (Q1 2025)
|
|
1546
|
+
- Document infrastructure patterns
|
|
1547
|
+
- Rotate security reviewer role
|
|
1548
|
+
- **Response:** Fast-track training, hire senior if persists
|
|
1549
|
+
|
|
1550
|
+
**3. Deploy Failures**
|
|
1551
|
+
- **Risk:** Production deploy breaks critical features
|
|
1552
|
+
- **Likelihood:** Low (1-2 times/quarter)
|
|
1553
|
+
- **Impact:** High ($5k/min revenue loss)
|
|
1554
|
+
- **Indicators:**
|
|
1555
|
+
- Error rate >0.1%
|
|
1556
|
+
- Revenue tracking stops
|
|
1557
|
+
- Customer support volume spikes
|
|
1558
|
+
- **Mitigation:**
|
|
1559
|
+
- Feature flags for risky changes
|
|
1560
|
+
- Automated rollback (1-click)
|
|
1561
|
+
- Canary deploys (10% traffic first)
|
|
1562
|
+
- **Response:** Rollback within 5min, postmortem, prevent recurrence
|
|
1563
|
+
|
|
1564
|
+
**4. Process Overhead**
|
|
1565
|
+
- **Risk:** Process slows velocity as team grows
|
|
1566
|
+
- **Likelihood:** High (natural growth friction)
|
|
1567
|
+
- **Impact:** Medium (competitive disadvantage)
|
|
1568
|
+
- **Indicators:**
|
|
1569
|
+
- Velocity drops >15% quarter-over-quarter
|
|
1570
|
+
- Developer satisfaction <7/10
|
|
1571
|
+
- Onboarding time >2 weeks
|
|
1572
|
+
- **Mitigation:**
|
|
1573
|
+
- Quarterly process review (kill low-value process)
|
|
1574
|
+
- Automation (PR templates, CI checks)
|
|
1575
|
+
- Delegate decisions to teams
|
|
1576
|
+
- **Response:** Emergency process audit, cut ceremony time
|
|
1577
|
+
|
|
1578
|
+
---
|
|
1579
|
+
|
|
1580
|
+
## Compliance Requirements
|
|
1581
|
+
|
|
1582
|
+
**SOC 2 Type II:**
|
|
1583
|
+
- **Requirement:** Code review audit trail
|
|
1584
|
+
- **Evidence:** GitHub PR approvals, timestamps
|
|
1585
|
+
- **Retention:** 7 years
|
|
1586
|
+
- **Process:** No direct commits to main, all changes via PR
|
|
1587
|
+
|
|
1588
|
+
**PCI DSS:**
|
|
1589
|
+
- **Requirement:** Separate payment code review
|
|
1590
|
+
- **Evidence:** Security team approval on payment PRs
|
|
1591
|
+
- **Process:** Mandatory security review for `/payment` directory
|
|
1592
|
+
|
|
1593
|
+
**GDPR:**
|
|
1594
|
+
- **Requirement:** Data processing documentation
|
|
1595
|
+
- **Evidence:** Privacy review on data schema changes
|
|
1596
|
+
- **Process:** Legal review on new data fields
|
|
1597
|
+
|
|
1598
|
+
**Audit Schedule:**
|
|
1599
|
+
- SOC 2: Annual (external auditor)
|
|
1600
|
+
- PCI: Quarterly (self-assessment)
|
|
1601
|
+
- GDPR: Biannual (legal review)
|
|
1602
|
+
|
|
1603
|
+
**Audit Preparation:**
|
|
1604
|
+
- Maintain compliance checklist in Notion
|
|
1605
|
+
- Export GitHub PR logs quarterly
|
|
1606
|
+
- Document all process exceptions
|