@pilotspace/add 1.13.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/CHANGELOG.md +189 -1
  2. package/THIRD_PARTY_NOTICES.md +41 -0
  3. package/bin/cli.js +240 -26
  4. package/docs/02-the-flow.md +1 -1
  5. package/docs/03-step-1-specify.md +4 -0
  6. package/docs/04-step-2-scenarios.md +4 -0
  7. package/docs/06-step-4-tests.md +4 -0
  8. package/docs/17-components.md +23 -5
  9. package/docs/18-personas.md +80 -0
  10. package/docs/add-milestone-task-lifecycle.png +0 -0
  11. package/docs/add-task-growth-wheel.png +0 -0
  12. package/docs/appendix-c-glossary.md +8 -4
  13. package/docs/appendix-d-worked-example.md +79 -0
  14. package/package.json +3 -1
  15. package/personas-teacher/LICENSE +21 -0
  16. package/personas-teacher/README.md +1067 -0
  17. package/personas-teacher/VENDOR.md +13 -0
  18. package/personas-teacher/academic/academic-anthropologist.md +125 -0
  19. package/personas-teacher/academic/academic-geographer.md +127 -0
  20. package/personas-teacher/academic/academic-historian.md +123 -0
  21. package/personas-teacher/academic/academic-narratologist.md +118 -0
  22. package/personas-teacher/academic/academic-psychologist.md +118 -0
  23. package/personas-teacher/design/design-brand-guardian.md +322 -0
  24. package/personas-teacher/design/design-image-prompt-engineer.md +236 -0
  25. package/personas-teacher/design/design-inclusive-visuals-specialist.md +71 -0
  26. package/personas-teacher/design/design-persona-walkthrough.md +272 -0
  27. package/personas-teacher/design/design-ui-designer.md +383 -0
  28. package/personas-teacher/design/design-ux-architect.md +469 -0
  29. package/personas-teacher/design/design-ux-researcher.md +329 -0
  30. package/personas-teacher/design/design-visual-storyteller.md +149 -0
  31. package/personas-teacher/design/design-whimsy-injector.md +438 -0
  32. package/personas-teacher/divisions.json +21 -0
  33. package/personas-teacher/engineering/engineering-ai-data-remediation-engineer.md +211 -0
  34. package/personas-teacher/engineering/engineering-ai-engineer.md +146 -0
  35. package/personas-teacher/engineering/engineering-autonomous-optimization-architect.md +107 -0
  36. package/personas-teacher/engineering/engineering-backend-architect.md +236 -0
  37. package/personas-teacher/engineering/engineering-cms-developer.md +536 -0
  38. package/personas-teacher/engineering/engineering-code-reviewer.md +76 -0
  39. package/personas-teacher/engineering/engineering-codebase-onboarding-engineer.md +173 -0
  40. package/personas-teacher/engineering/engineering-data-engineer.md +306 -0
  41. package/personas-teacher/engineering/engineering-database-optimizer.md +176 -0
  42. package/personas-teacher/engineering/engineering-devops-automator.md +376 -0
  43. package/personas-teacher/engineering/engineering-drupal-shopping-cart.md +360 -0
  44. package/personas-teacher/engineering/engineering-email-intelligence-engineer.md +353 -0
  45. package/personas-teacher/engineering/engineering-embedded-firmware-engineer.md +173 -0
  46. package/personas-teacher/engineering/engineering-feishu-integration-developer.md +598 -0
  47. package/personas-teacher/engineering/engineering-filament-optimization-specialist.md +283 -0
  48. package/personas-teacher/engineering/engineering-frontend-developer.md +225 -0
  49. package/personas-teacher/engineering/engineering-git-workflow-master.md +84 -0
  50. package/personas-teacher/engineering/engineering-incident-response-commander.md +444 -0
  51. package/personas-teacher/engineering/engineering-it-service-manager.md +561 -0
  52. package/personas-teacher/engineering/engineering-minimal-change-engineer.md +207 -0
  53. package/personas-teacher/engineering/engineering-mobile-app-builder.md +493 -0
  54. package/personas-teacher/engineering/engineering-multi-agent-systems-architect.md +600 -0
  55. package/personas-teacher/engineering/engineering-orgscript-engineer.md +113 -0
  56. package/personas-teacher/engineering/engineering-prompt-engineer.md +202 -0
  57. package/personas-teacher/engineering/engineering-rapid-prototyper.md +462 -0
  58. package/personas-teacher/engineering/engineering-senior-developer.md +176 -0
  59. package/personas-teacher/engineering/engineering-software-architect.md +112 -0
  60. package/personas-teacher/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
  61. package/personas-teacher/engineering/engineering-sre.md +90 -0
  62. package/personas-teacher/engineering/engineering-technical-writer.md +393 -0
  63. package/personas-teacher/engineering/engineering-voice-ai-integration-engineer.md +561 -0
  64. package/personas-teacher/engineering/engineering-wechat-mini-program-developer.md +350 -0
  65. package/personas-teacher/engineering/engineering-wordpress-shopping-cart.md +346 -0
  66. package/personas-teacher/examples/README.md +48 -0
  67. package/personas-teacher/examples/nexus-spatial-discovery.md +852 -0
  68. package/personas-teacher/examples/workflow-book-chapter.md +55 -0
  69. package/personas-teacher/examples/workflow-landing-page.md +119 -0
  70. package/personas-teacher/examples/workflow-startup-mvp.md +155 -0
  71. package/personas-teacher/examples/workflow-with-memory.md +238 -0
  72. package/personas-teacher/finance/finance-bookkeeper-controller.md +260 -0
  73. package/personas-teacher/finance/finance-financial-analyst.md +234 -0
  74. package/personas-teacher/finance/finance-fpa-analyst.md +263 -0
  75. package/personas-teacher/finance/finance-investment-researcher.md +272 -0
  76. package/personas-teacher/finance/finance-tax-strategist.md +239 -0
  77. package/personas-teacher/game-development/blender/blender-addon-engineer.md +234 -0
  78. package/personas-teacher/game-development/game-audio-engineer.md +264 -0
  79. package/personas-teacher/game-development/game-designer.md +167 -0
  80. package/personas-teacher/game-development/godot/godot-gameplay-scripter.md +334 -0
  81. package/personas-teacher/game-development/godot/godot-multiplayer-engineer.md +297 -0
  82. package/personas-teacher/game-development/godot/godot-shader-developer.md +266 -0
  83. package/personas-teacher/game-development/level-designer.md +208 -0
  84. package/personas-teacher/game-development/narrative-designer.md +243 -0
  85. package/personas-teacher/game-development/roblox-studio/roblox-avatar-creator.md +297 -0
  86. package/personas-teacher/game-development/roblox-studio/roblox-experience-designer.md +305 -0
  87. package/personas-teacher/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
  88. package/personas-teacher/game-development/technical-artist.md +229 -0
  89. package/personas-teacher/game-development/unity/unity-architect.md +271 -0
  90. package/personas-teacher/game-development/unity/unity-editor-tool-developer.md +310 -0
  91. package/personas-teacher/game-development/unity/unity-multiplayer-engineer.md +321 -0
  92. package/personas-teacher/game-development/unity/unity-shader-graph-artist.md +269 -0
  93. package/personas-teacher/game-development/unreal-engine/unreal-multiplayer-architect.md +313 -0
  94. package/personas-teacher/game-development/unreal-engine/unreal-systems-engineer.md +310 -0
  95. package/personas-teacher/game-development/unreal-engine/unreal-technical-artist.md +256 -0
  96. package/personas-teacher/game-development/unreal-engine/unreal-world-builder.md +273 -0
  97. package/personas-teacher/gis/gis-3d-scene-developer.md +111 -0
  98. package/personas-teacher/gis/gis-analyst.md +91 -0
  99. package/personas-teacher/gis/gis-bim-specialist.md +108 -0
  100. package/personas-teacher/gis/gis-cartography-designer.md +150 -0
  101. package/personas-teacher/gis/gis-drone-reality-mapping.md +120 -0
  102. package/personas-teacher/gis/gis-geoai-ml-engineer.md +105 -0
  103. package/personas-teacher/gis/gis-geoprocessing-specialist.md +97 -0
  104. package/personas-teacher/gis/gis-qa-engineer.md +133 -0
  105. package/personas-teacher/gis/gis-solution-engineer.md +101 -0
  106. package/personas-teacher/gis/gis-spatial-data-engineer.md +97 -0
  107. package/personas-teacher/gis/gis-spatial-data-scientist.md +111 -0
  108. package/personas-teacher/gis/gis-technical-consultant.md +86 -0
  109. package/personas-teacher/gis/gis-web-gis-developer.md +108 -0
  110. package/personas-teacher/marketing/marketing-aeo-foundations.md +264 -0
  111. package/personas-teacher/marketing/marketing-agentic-search-optimizer.md +311 -0
  112. package/personas-teacher/marketing/marketing-ai-citation-strategist.md +170 -0
  113. package/personas-teacher/marketing/marketing-app-store-optimizer.md +321 -0
  114. package/personas-teacher/marketing/marketing-baidu-seo-specialist.md +226 -0
  115. package/personas-teacher/marketing/marketing-bilibili-content-strategist.md +199 -0
  116. package/personas-teacher/marketing/marketing-book-co-author.md +110 -0
  117. package/personas-teacher/marketing/marketing-carousel-growth-engine.md +199 -0
  118. package/personas-teacher/marketing/marketing-china-ecommerce-operator.md +283 -0
  119. package/personas-teacher/marketing/marketing-china-market-localization-strategist.md +283 -0
  120. package/personas-teacher/marketing/marketing-content-creator.md +54 -0
  121. package/personas-teacher/marketing/marketing-cross-border-ecommerce.md +259 -0
  122. package/personas-teacher/marketing/marketing-douyin-strategist.md +149 -0
  123. package/personas-teacher/marketing/marketing-email-strategist.md +249 -0
  124. package/personas-teacher/marketing/marketing-global-podcast-strategist.md +206 -0
  125. package/personas-teacher/marketing/marketing-growth-hacker.md +54 -0
  126. package/personas-teacher/marketing/marketing-instagram-curator.md +113 -0
  127. package/personas-teacher/marketing/marketing-kuaishou-strategist.md +223 -0
  128. package/personas-teacher/marketing/marketing-linkedin-content-creator.md +214 -0
  129. package/personas-teacher/marketing/marketing-livestream-commerce-coach.md +305 -0
  130. package/personas-teacher/marketing/marketing-multi-platform-publisher.md +217 -0
  131. package/personas-teacher/marketing/marketing-podcast-strategist.md +277 -0
  132. package/personas-teacher/marketing/marketing-pr-communications-manager.md +473 -0
  133. package/personas-teacher/marketing/marketing-private-domain-operator.md +308 -0
  134. package/personas-teacher/marketing/marketing-reddit-community-builder.md +123 -0
  135. package/personas-teacher/marketing/marketing-seo-specialist.md +321 -0
  136. package/personas-teacher/marketing/marketing-short-video-editing-coach.md +412 -0
  137. package/personas-teacher/marketing/marketing-social-media-strategist.md +125 -0
  138. package/personas-teacher/marketing/marketing-tiktok-strategist.md +125 -0
  139. package/personas-teacher/marketing/marketing-twitter-engager.md +126 -0
  140. package/personas-teacher/marketing/marketing-video-optimization-specialist.md +119 -0
  141. package/personas-teacher/marketing/marketing-wechat-official-account.md +145 -0
  142. package/personas-teacher/marketing/marketing-weibo-strategist.md +240 -0
  143. package/personas-teacher/marketing/marketing-x-twitter-intelligence-analyst.md +161 -0
  144. package/personas-teacher/marketing/marketing-xiaohongshu-specialist.md +138 -0
  145. package/personas-teacher/marketing/marketing-zhihu-strategist.md +162 -0
  146. package/personas-teacher/paid-media/paid-media-auditor.md +71 -0
  147. package/personas-teacher/paid-media/paid-media-creative-strategist.md +71 -0
  148. package/personas-teacher/paid-media/paid-media-paid-social-strategist.md +71 -0
  149. package/personas-teacher/paid-media/paid-media-ppc-strategist.md +71 -0
  150. package/personas-teacher/paid-media/paid-media-programmatic-buyer.md +71 -0
  151. package/personas-teacher/paid-media/paid-media-search-query-analyst.md +71 -0
  152. package/personas-teacher/paid-media/paid-media-tracking-specialist.md +71 -0
  153. package/personas-teacher/product/product-behavioral-nudge-engine.md +80 -0
  154. package/personas-teacher/product/product-feedback-synthesizer.md +119 -0
  155. package/personas-teacher/product/product-manager.md +469 -0
  156. package/personas-teacher/product/product-sprint-prioritizer.md +154 -0
  157. package/personas-teacher/product/product-trend-researcher.md +159 -0
  158. package/personas-teacher/project-management/project-management-experiment-tracker.md +198 -0
  159. package/personas-teacher/project-management/project-management-jira-workflow-steward.md +230 -0
  160. package/personas-teacher/project-management/project-management-meeting-notes-specialist.md +95 -0
  161. package/personas-teacher/project-management/project-management-project-shepherd.md +194 -0
  162. package/personas-teacher/project-management/project-management-studio-operations.md +200 -0
  163. package/personas-teacher/project-management/project-management-studio-producer.md +203 -0
  164. package/personas-teacher/project-management/project-manager-senior.md +135 -0
  165. package/personas-teacher/sales/sales-account-strategist.md +227 -0
  166. package/personas-teacher/sales/sales-coach.md +271 -0
  167. package/personas-teacher/sales/sales-deal-strategist.md +180 -0
  168. package/personas-teacher/sales/sales-discovery-coach.md +225 -0
  169. package/personas-teacher/sales/sales-engineer.md +182 -0
  170. package/personas-teacher/sales/sales-offer-lead-gen-strategist.md +257 -0
  171. package/personas-teacher/sales/sales-outbound-strategist.md +201 -0
  172. package/personas-teacher/sales/sales-pipeline-analyst.md +267 -0
  173. package/personas-teacher/sales/sales-proposal-strategist.md +217 -0
  174. package/personas-teacher/security/security-appsec-engineer.md +491 -0
  175. package/personas-teacher/security/security-architect.md +304 -0
  176. package/personas-teacher/security/security-blockchain-security-auditor.md +463 -0
  177. package/personas-teacher/security/security-cloud-security-architect.md +523 -0
  178. package/personas-teacher/security/security-compliance-auditor.md +158 -0
  179. package/personas-teacher/security/security-incident-responder.md +437 -0
  180. package/personas-teacher/security/security-penetration-tester.md +399 -0
  181. package/personas-teacher/security/security-senior-secops.md +750 -0
  182. package/personas-teacher/security/security-threat-detection-engineer.md +534 -0
  183. package/personas-teacher/security/security-threat-intelligence-analyst.md +644 -0
  184. package/personas-teacher/spatial-computing/macos-spatial-metal-engineer.md +337 -0
  185. package/personas-teacher/spatial-computing/terminal-integration-specialist.md +70 -0
  186. package/personas-teacher/spatial-computing/visionos-spatial-engineer.md +54 -0
  187. package/personas-teacher/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
  188. package/personas-teacher/spatial-computing/xr-immersive-developer.md +32 -0
  189. package/personas-teacher/spatial-computing/xr-interface-architect.md +32 -0
  190. package/personas-teacher/specialized/accounts-payable-agent.md +185 -0
  191. package/personas-teacher/specialized/agentic-identity-trust.md +387 -0
  192. package/personas-teacher/specialized/agents-orchestrator.md +367 -0
  193. package/personas-teacher/specialized/automation-governance-architect.md +216 -0
  194. package/personas-teacher/specialized/business-strategist.md +488 -0
  195. package/personas-teacher/specialized/change-management-consultant.md +497 -0
  196. package/personas-teacher/specialized/chief-financial-officer.md +388 -0
  197. package/personas-teacher/specialized/corporate-training-designer.md +192 -0
  198. package/personas-teacher/specialized/customer-service.md +398 -0
  199. package/personas-teacher/specialized/customer-success-manager.md +460 -0
  200. package/personas-teacher/specialized/data-consolidation-agent.md +60 -0
  201. package/personas-teacher/specialized/data-privacy-officer.md +412 -0
  202. package/personas-teacher/specialized/esg-sustainability-officer.md +396 -0
  203. package/personas-teacher/specialized/government-digital-presales-consultant.md +363 -0
  204. package/personas-teacher/specialized/grant-writer.md +511 -0
  205. package/personas-teacher/specialized/healthcare-customer-service.md +389 -0
  206. package/personas-teacher/specialized/healthcare-marketing-compliance.md +395 -0
  207. package/personas-teacher/specialized/hospitality-guest-services.md +603 -0
  208. package/personas-teacher/specialized/hr-onboarding.md +451 -0
  209. package/personas-teacher/specialized/identity-graph-operator.md +260 -0
  210. package/personas-teacher/specialized/language-translator.md +264 -0
  211. package/personas-teacher/specialized/legal-billing-time-tracking.md +569 -0
  212. package/personas-teacher/specialized/legal-client-intake.md +492 -0
  213. package/personas-teacher/specialized/legal-document-review.md +454 -0
  214. package/personas-teacher/specialized/loan-officer-assistant.md +555 -0
  215. package/personas-teacher/specialized/lsp-index-engineer.md +314 -0
  216. package/personas-teacher/specialized/ma-integration-manager.md +427 -0
  217. package/personas-teacher/specialized/medical-billing-coding-specialist.md +491 -0
  218. package/personas-teacher/specialized/operations-manager.md +399 -0
  219. package/personas-teacher/specialized/organizational-psychologist.md +391 -0
  220. package/personas-teacher/specialized/personal-growth-mentor.md +159 -0
  221. package/personas-teacher/specialized/real-estate-buyer-seller.md +596 -0
  222. package/personas-teacher/specialized/recruitment-specialist.md +509 -0
  223. package/personas-teacher/specialized/report-distribution-agent.md +65 -0
  224. package/personas-teacher/specialized/retail-customer-returns.md +566 -0
  225. package/personas-teacher/specialized/sales-data-extraction-agent.md +67 -0
  226. package/personas-teacher/specialized/sales-outreach.md +425 -0
  227. package/personas-teacher/specialized/specialized-chief-of-staff.md +279 -0
  228. package/personas-teacher/specialized/specialized-civil-engineer.md +356 -0
  229. package/personas-teacher/specialized/specialized-cultural-intelligence-strategist.md +88 -0
  230. package/personas-teacher/specialized/specialized-developer-advocate.md +317 -0
  231. package/personas-teacher/specialized/specialized-document-generator.md +55 -0
  232. package/personas-teacher/specialized/specialized-french-consulting-market.md +192 -0
  233. package/personas-teacher/specialized/specialized-korean-business-navigator.md +216 -0
  234. package/personas-teacher/specialized/specialized-mcp-builder.md +248 -0
  235. package/personas-teacher/specialized/specialized-model-qa.md +488 -0
  236. package/personas-teacher/specialized/specialized-pricing-analyst.md +243 -0
  237. package/personas-teacher/specialized/specialized-salesforce-architect.md +180 -0
  238. package/personas-teacher/specialized/specialized-strategy-duel-agent.md +130 -0
  239. package/personas-teacher/specialized/specialized-workflow-architect.md +597 -0
  240. package/personas-teacher/specialized/study-abroad-advisor.md +282 -0
  241. package/personas-teacher/specialized/supply-chain-strategist.md +582 -0
  242. package/personas-teacher/specialized/zk-steward.md +211 -0
  243. package/personas-teacher/strategy/EXECUTIVE-BRIEF.md +95 -0
  244. package/personas-teacher/strategy/QUICKSTART.md +194 -0
  245. package/personas-teacher/strategy/coordination/agent-activation-prompts.md +401 -0
  246. package/personas-teacher/strategy/coordination/handoff-templates.md +357 -0
  247. package/personas-teacher/strategy/nexus-strategy.md +1110 -0
  248. package/personas-teacher/strategy/playbooks/phase-0-discovery.md +178 -0
  249. package/personas-teacher/strategy/playbooks/phase-1-strategy.md +238 -0
  250. package/personas-teacher/strategy/playbooks/phase-2-foundation.md +278 -0
  251. package/personas-teacher/strategy/playbooks/phase-3-build.md +286 -0
  252. package/personas-teacher/strategy/playbooks/phase-4-hardening.md +332 -0
  253. package/personas-teacher/strategy/playbooks/phase-5-launch.md +277 -0
  254. package/personas-teacher/strategy/playbooks/phase-6-operate.md +318 -0
  255. package/personas-teacher/strategy/runbooks/scenario-enterprise-feature.md +157 -0
  256. package/personas-teacher/strategy/runbooks/scenario-incident-response.md +217 -0
  257. package/personas-teacher/strategy/runbooks/scenario-marketing-campaign.md +187 -0
  258. package/personas-teacher/strategy/runbooks/scenario-startup-mvp.md +154 -0
  259. package/personas-teacher/support/support-analytics-reporter.md +365 -0
  260. package/personas-teacher/support/support-executive-summary-generator.md +212 -0
  261. package/personas-teacher/support/support-finance-tracker.md +442 -0
  262. package/personas-teacher/support/support-infrastructure-maintainer.md +618 -0
  263. package/personas-teacher/support/support-legal-compliance-checker.md +588 -0
  264. package/personas-teacher/support/support-support-responder.md +585 -0
  265. package/personas-teacher/testing/testing-accessibility-auditor.md +316 -0
  266. package/personas-teacher/testing/testing-api-tester.md +306 -0
  267. package/personas-teacher/testing/testing-evidence-collector.md +210 -0
  268. package/personas-teacher/testing/testing-performance-benchmarker.md +268 -0
  269. package/personas-teacher/testing/testing-reality-checker.md +236 -0
  270. package/personas-teacher/testing/testing-test-results-analyzer.md +305 -0
  271. package/personas-teacher/testing/testing-tool-evaluator.md +394 -0
  272. package/personas-teacher/testing/testing-workflow-optimizer.md +450 -0
  273. package/personas-teacher/tools.json +19 -0
  274. package/skill/add/SKILL.md +17 -12
  275. package/skill/add/advisor.md +31 -34
  276. package/skill/add/components.md +21 -23
  277. package/skill/add/confidence.md +1 -1
  278. package/skill/add/deltas.md +12 -13
  279. package/skill/add/design.md +52 -49
  280. package/skill/add/fold.md +18 -16
  281. package/skill/add/intake.md +4 -3
  282. package/skill/add/loop.md +1 -2
  283. package/skill/add/phases/0-ground.md +32 -34
  284. package/skill/add/phases/0-setup.md +22 -21
  285. package/skill/add/phases/1-specify.md +8 -6
  286. package/skill/add/phases/3-contract.md +1 -1
  287. package/skill/add/phases/4-tests.md +9 -10
  288. package/skill/add/phases/5-build.md +17 -13
  289. package/skill/add/phases/6-verify.md +7 -4
  290. package/skill/add/phases/7-observe.md +2 -1
  291. package/skill/add/report-template.md +61 -18
  292. package/skill/add/run.md +4 -3
  293. package/skill/add/scope.md +2 -2
  294. package/skill/add/sensitivity.md +51 -0
  295. package/skill/add/streams.md +24 -23
  296. package/tooling/add.py +1076 -39
  297. package/tooling/add_engine/autonomy.py +36 -1
  298. package/tooling/add_engine/constants.py +56 -3
  299. package/tooling/add_engine/guidelines.py +22 -20
  300. package/tooling/add_engine/predicates.py +56 -3
  301. package/tooling/add_engine/search.py +165 -0
  302. package/tooling/templates/GLOSSARY.md.tmpl +16 -0
  303. package/tooling/templates/MILESTONE.md.tmpl +9 -0
  304. package/tooling/templates/PROMPT.persona.md.tmpl +44 -0
  305. package/tooling/templates/TASK.fast.md.tmpl +2 -1
  306. package/tooling/templates/TASK.md.tmpl +36 -6
  307. package/tooling/templates/gitignore.tmpl +12 -0
  308. package/tooling/templates/personas/_template.md.tmpl +60 -0
@@ -16,11 +16,15 @@
16
16
 
17
17
  **Co-specification** — how a spec is made in ADD: the AI and the human **brainstorm the shape together** (diverge), the AI **drafts** it, and the human **validates with the AI's advice** (validate). The AI's decisive advice is the *lowest-confidence flag*. It replaces dictation-by-one-side — the human owns the decision, the AI owns surfacing what it does not yet know. See [03 Specify](./03-step-1-specify.md).
18
18
 
19
- **Component** — a declared part of a multi-part codebase that owns a source `root` and its own `green-bar` (suite + checks), named in `.add/components.toml` under `[component.<name>]`. A task binds to one with a `component:` header line, which adds that root to its §5 Scope and holds it to that component's green bar at verify. Declared, never inferred; a project with no components is byte-identical to a single-codebase project. See [17 Components](./17-components.md).
19
+ **Component** — a declared part of a multi-part codebase that owns a source `root` and its own `green-bar` (suite + checks), named in `.add/components.toml` under `[component.<name>]`. A task binds to one with a `component:` header line, which adds that root to its §5 Scope and holds it to that component's green bar at verify. At the gate the engine also **surfaces** the component's `verify` command (the literal suite to run, e.g. `pytest -q`) and records it — NO-EXEC, the operator runs it; the fast lane carries the same `component:` affordance. Declared, never inferred; a project with no components is byte-identical to a single-codebase project. See [17 Components](./17-components.md).
20
20
 
21
- **Cross-component contract** — the frozen, machine-checkable interface between a producer component and its consumers, declared under `[contract.<id>]` (producer + consumers). A task names its role with a `produces: <id>` or `consumes: <id>` header. On the producer's freeze the engine writes an immutable snapshot at `.add/contracts/<id>.json`; a consumer pins its hash and is flagged `contract_consumer_stale` if the producer later re-freezes a changed shape. Inside one milestone a `consumes:` task is HELD from writing its §3 until the producer's snapshot exists — the intra-milestone BE→FE ordering. See [17 Components](./17-components.md).
21
+ **persona** — a project-fit requirements lens the agent adopts, distilled from a *teacher* the vendored local library at `.add/personas-teacher/` to three machine-readable parts: an **Identity** (the stance), **Critical Rules** (the non-negotiable constraints), and measurable **Success Metrics** (the done-bar). Stored as a versioned `.add/personas/<slug>.md`; read off-build (the teacher is never a runtime dependency); advisory only it never lowers a gate (a security finding still `HARD-STOP`s) and the engine stays NO-EXEC. See [18 Personas](./18-personas.md).
22
22
 
23
- **Federation (multi-repo)** — the transport that carries a frozen cross-component contract between separate repositories. A consumer repo declares `[federation.<id>]` with a `source` (and optional `pin`); `add.py federate pull <id>` validates the producer repo's published snapshot and lands a byte-for-byte copy locally, where it behaves exactly as in a monorepo. Fail-loud: an unknown id, unreadable source, invalid snapshot, or version mismatch HARD-STOPS and lands nothing. Each repo keeps its own git-native `state.json`; only the immutable snapshot crosses. See [17 Components](./17-components.md).
23
+ **persona loop** — how personas come to exist and improve: **seed** (proposed at setup from the foundation) **grow** (observe emits a persona delta; the human consolidates confirmed deltas into the file) **apply** (UDD framing, advisor/streams subagent selection, and the build overlay atop `SOUL.md`). Opt-in and additive; a project with no personas behaves exactly as before. See [18 Personas](./18-personas.md).
24
+
25
+ **Cross-component contract** — the frozen, machine-checkable interface between a producer component and its consumers, declared under `[contract.<id>]` (producer + consumers). A task names its role with a `produces: <id>` or `consumes: <id>` header. On the producer's freeze the engine writes an immutable snapshot at `.add/contracts/<id>.json`; a consumer pins its hash and is flagged `contract_consumer_stale` if the producer later re-freezes a changed shape. Inside one milestone a `consumes:` task is HELD from writing its §3 until the producer's snapshot exists — the intra-milestone BE→FE ordering. Freeze-recency: the consumer is also held `producer_contract_stale` if a *live* producer task has re-opened or drifted its §3 (the snapshot no longer matches a frozen producer); `add.py check` surfaces the softer `contract_producer_stale` and `contract_snapshot_hashless` (a snapshot with no hash to verify) as never-red warnings. See [17 Components](./17-components.md).
26
+
27
+ **Federation (multi-repo)** — the transport that carries a frozen cross-component contract between separate repositories. A consumer repo declares `[federation.<id>]` with a `source` (and optional `pin`); `add.py federate pull <id>` validates the producer repo's published snapshot and lands a byte-for-byte copy locally, where it behaves exactly as in a monorepo. Fail-loud: an unknown id, unreadable source, a `source` that escapes the repo's allowlist (`federation_source_escapes` — the path is confined to a sibling of the repo root), invalid snapshot, or version mismatch HARD-STOPS and lands nothing. Each repo keeps its own git-native `state.json`; only the immutable snapshot crosses. See [17 Components](./17-components.md).
24
28
 
25
29
  **Disposable code** — the view that code is one regenerable implementation of the artifacts, not a durable asset to be preserved.
26
30
 
@@ -52,7 +56,7 @@
52
56
 
53
57
  **The decision arc** — the three engine-sourced lines a gate report opens with at every **decision point**: `goal:` the milestone goal the work serves · `done:` the achievement, the proven progress toward it (the gate reports render this line as `done`) · `plan:` what comes next. What `done` reports adapts per gate (verify: tests + evidence · milestone close: exit-criteria met · intake: the request sized) while the three-part shape stays constant. Rendered first, above the report's summary, so the human confirms with sight of the whole trajectory, not a local snapshot. Engine-sourced like all evidence — goal · done · plan are pulled from `add.py` output, never re-typed. Presentation only: it never adds a gate or changes a `PASS` / `RISK-ACCEPTED` / `HARD-STOP` / freeze outcome. The report it opens is the chat report a person reads at a decision point — distinct from the three Test/Quality/Risk reports a verify gate produces ([11 Governance](./11-governance.md)). See the `add` skill's `report-template.md`.
54
58
 
55
- **Guided decision** — a **decision point** presented not as a bare next-step line but as one highlighted **recommended pick** plus its real, described alternatives (each with its one-line consequence), so the human chooses with the recommendation and what each option costs already in view. It refines the report's DECISION block — composing with **the decision arc**, never adding a gate — and fires at human gates only (never at an autonomous `[you drive]` step). The sibling of the decision arc: both are what the human sees when it is their turn. See the `add` skill's `report-template.md` for the convention itself.
59
+ **Guided decision** — a **decision point** presented not as a bare next-step line but as one highlighted **recommended pick** plus its real, described alternatives (each with its one-line consequence), so the human chooses with the recommendation and what each option costs already in view. It refines the report's APPROVE block — composing with **the decision arc**, never adding a gate — and fires at human gates only (never at an autonomous `[you drive]` step). The sibling of the decision arc: both are what the human sees when it is their turn. See the `add` skill's `report-template.md` for the convention itself.
56
60
 
57
61
  **Recommended pick** — the one option a **guided decision** highlights with the `▶ … (recommended)` marker: exactly one, never zero and never two. The AI's confidence self-score informs the pick; the human overrides it freely. See **Guided decision**.
58
62
 
@@ -150,3 +150,82 @@ A week later, telemetry shows an unexpectedly high `forbidden` rate. The `6_obse
150
150
  ---
151
151
 
152
152
  This is the whole method in one feature: four artifacts written in order, an AI build bounded by them, a verification grounded in evidence plus the one check tests miss, and a loop that turns production reality into the next specification.
153
+
154
+ ---
155
+
156
+ ## Multi-component, end to end
157
+
158
+ The example above is a single codebase with one green bar. Real slices often cross components — a backend endpoint and the frontend that calls it. ADD ships that slice *inside one milestone* using the component pillar (chapter 17). Here is the same flow, now spanning two components: a `gateway` backend that **produces** an `orders` contract, and a `web` frontend that **consumes** it.
159
+
160
+ ### Declare the components
161
+
162
+ The two parts and the boundary between them are declared in `.add/components.toml` — never inferred:
163
+
164
+ ```toml
165
+ [component.gateway]
166
+ root = "apps/gateway"
167
+ green_bar = "pytest + pyright"
168
+ verify = "pytest -q apps/gateway"
169
+
170
+ [component.web]
171
+ root = "apps/web"
172
+ green_bar = "vitest + a11y"
173
+ verify = "pnpm -C apps/web test"
174
+
175
+ [contract.orders]
176
+ producer = "gateway"
177
+ consumers = ["web"]
178
+ ```
179
+
180
+ One milestone, **list-orders slice**, holds two tasks: `orders-api` (the BE, `produces: orders`) and `orders-list` (the FE, `consumes: orders`).
181
+
182
+ ### The backend freezes first → an immutable snapshot
183
+
184
+ `orders-api` carries a `component: gateway` and a `produces: orders` header. It runs the normal flow — specify, scenarios, contract — and the human freezes its §3:
185
+
186
+ ```
187
+ GET /orders?status= -> 200 { orders: [{ id, status, total, placedAt }], nextCursor }
188
+ 400 { error: "bad_status" }
189
+ Status: FROZEN @ v1 — approved by the tech lead
190
+ ```
191
+
192
+ The moment that contract freezes and the task crosses contract→tests, the engine writes an immutable snapshot — `.add/contracts/orders.json` — recording the id, producer, version, frozen date, and a hash over the frozen §3 shape. That file *is* the published interface.
193
+
194
+ ### The frontend is held until the backend freezes
195
+
196
+ `orders-list` (`component: web`, `consumes: orders`) was started in the same milestone, but it must not commit to a shape the backend has not frozen. When it tries to advance scenarios→contract before the snapshot exists, the engine refuses:
197
+
198
+ ```
199
+ $ python3 .add/tooling/add.py advance
200
+ add: error: producer_contract_unfrozen: orders-list consumes 'orders' but no frozen producer snapshot exists yet — the FE is held until gateway freezes
201
+ ```
202
+
203
+ Once `orders.json` exists, the same `advance` succeeds: the FE writes its §3 against the frozen shape and **pins that snapshot's hash**. The slice is ordered by the contract, not by splitting BE and FE across two milestones.
204
+
205
+ If the backend later *re-opens* its §3 to change the shape, the engine holds the consumer `producer_contract_stale` rather than letting it pin a shape that is mid-change — and `add.py check` separately surfaces `contract_producer_stale` / `contract_snapshot_hashless` as never-red warnings. Freeze-recency, not just existence.
206
+
207
+ ### Each task verifies against its own green bar
208
+
209
+ At the gate, the engine holds each task to *its* component. `orders-api` must cite `pytest + pyright` in its §6 evidence; `orders-list` must cite `vitest + a11y` — cite the wrong bar (or none) and the gate refuses `component_green_bar_uncited`. The engine never runs either suite; it **surfaces** the component's `verify` command so the operator sees exactly what to run:
210
+
211
+ ```
212
+ $ python3 .add/tooling/add.py gate PASS
213
+ task 'orders-api' gate -> PASS
214
+ component: gateway · expected green-bar: pytest + pyright · verify: pytest -q apps/gateway # run this suite — the engine does not (NO-EXEC)
215
+ ```
216
+
217
+ Two tasks, one milestone, two green bars — each held to its own, each suite run by you.
218
+
219
+ ### Across repositories — federation
220
+
221
+ When `gateway` and `web` live in *separate* repos, only the snapshot transport changes. The `web` repo declares where the producer publishes:
222
+
223
+ ```toml
224
+ [federation.orders]
225
+ source = "../gateway/.add/contracts/orders.json"
226
+ pin = "v1"
227
+ ```
228
+
229
+ `add.py federate pull orders` validates the producer repo's published snapshot (valid JSON, matching id, a hash, matching version) and lands a byte-for-byte copy locally — from there the FE holds and pins exactly as in a monorepo. The pull is fail-loud: an unknown id, an unreadable source, a `source` that escapes the repo's allowlist (`federation_source_escapes`), an invalid snapshot, or a version mismatch each HARD-STOPS and lands nothing. Federation never builds the FE against a guessed, out-of-tree, or stale endpoint.
230
+
231
+ That is the component pillar in one slice: declare the parts, freeze the boundary, hold the consumer behind the producer, verify each part on its own bar, and carry the frozen contract across repos — all within the same six-step flow and its single contract-freeze approval.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotspace/add",
3
- "version": "1.13.0",
3
+ "version": "1.15.0",
4
4
  "description": "ADD (AI-Driven Development). One skill. Eight steps. Five disciplines. Every feature ships through the loop — a minimal, state-tracked Claude Code skill that ships the AIDD book as its trust layer.",
5
5
  "bin": {
6
6
  "add": "bin/cli.js"
@@ -24,6 +24,8 @@
24
24
  "!**/*.pyc",
25
25
  "tooling/templates/",
26
26
  "docs/",
27
+ "personas-teacher/",
28
+ "THIRD_PARTY_NOTICES.md",
27
29
  "README.md",
28
30
  "GETTING-STARTED.md",
29
31
  "CHANGELOG.md",
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 AgentLand Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.