@pilotspace/add 1.14.0 → 1.16.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 (312) hide show
  1. package/CHANGELOG.md +195 -1
  2. package/README.md +70 -3
  3. package/THIRD_PARTY_NOTICES.md +41 -0
  4. package/agents/add-advisor.md +31 -0
  5. package/agents/add-build.md +29 -0
  6. package/agents/add-design.md +32 -0
  7. package/agents/add-persona.md +31 -0
  8. package/agents/add-verify.md +34 -0
  9. package/bin/cli.js +615 -54
  10. package/docs/02-the-flow.md +1 -1
  11. package/docs/03-step-1-specify.md +4 -0
  12. package/docs/04-step-2-scenarios.md +4 -0
  13. package/docs/06-step-4-tests.md +4 -0
  14. package/docs/08-step-6-verify.md +7 -0
  15. package/docs/18-personas.md +80 -0
  16. package/docs/add-milestone-task-lifecycle.png +0 -0
  17. package/docs/add-task-growth-wheel.png +0 -0
  18. package/docs/appendix-c-glossary.md +5 -1
  19. package/package.json +4 -1
  20. package/personas-teacher/LICENSE +21 -0
  21. package/personas-teacher/README.md +1067 -0
  22. package/personas-teacher/VENDOR.md +13 -0
  23. package/personas-teacher/academic/academic-anthropologist.md +125 -0
  24. package/personas-teacher/academic/academic-geographer.md +127 -0
  25. package/personas-teacher/academic/academic-historian.md +123 -0
  26. package/personas-teacher/academic/academic-narratologist.md +118 -0
  27. package/personas-teacher/academic/academic-psychologist.md +118 -0
  28. package/personas-teacher/design/design-brand-guardian.md +322 -0
  29. package/personas-teacher/design/design-image-prompt-engineer.md +236 -0
  30. package/personas-teacher/design/design-inclusive-visuals-specialist.md +71 -0
  31. package/personas-teacher/design/design-persona-walkthrough.md +272 -0
  32. package/personas-teacher/design/design-ui-designer.md +383 -0
  33. package/personas-teacher/design/design-ux-architect.md +469 -0
  34. package/personas-teacher/design/design-ux-researcher.md +329 -0
  35. package/personas-teacher/design/design-visual-storyteller.md +149 -0
  36. package/personas-teacher/design/design-whimsy-injector.md +438 -0
  37. package/personas-teacher/divisions.json +21 -0
  38. package/personas-teacher/engineering/engineering-ai-data-remediation-engineer.md +211 -0
  39. package/personas-teacher/engineering/engineering-ai-engineer.md +146 -0
  40. package/personas-teacher/engineering/engineering-autonomous-optimization-architect.md +107 -0
  41. package/personas-teacher/engineering/engineering-backend-architect.md +236 -0
  42. package/personas-teacher/engineering/engineering-cms-developer.md +536 -0
  43. package/personas-teacher/engineering/engineering-code-reviewer.md +76 -0
  44. package/personas-teacher/engineering/engineering-codebase-onboarding-engineer.md +173 -0
  45. package/personas-teacher/engineering/engineering-data-engineer.md +306 -0
  46. package/personas-teacher/engineering/engineering-database-optimizer.md +176 -0
  47. package/personas-teacher/engineering/engineering-devops-automator.md +376 -0
  48. package/personas-teacher/engineering/engineering-drupal-shopping-cart.md +360 -0
  49. package/personas-teacher/engineering/engineering-email-intelligence-engineer.md +353 -0
  50. package/personas-teacher/engineering/engineering-embedded-firmware-engineer.md +173 -0
  51. package/personas-teacher/engineering/engineering-feishu-integration-developer.md +598 -0
  52. package/personas-teacher/engineering/engineering-filament-optimization-specialist.md +283 -0
  53. package/personas-teacher/engineering/engineering-frontend-developer.md +225 -0
  54. package/personas-teacher/engineering/engineering-git-workflow-master.md +84 -0
  55. package/personas-teacher/engineering/engineering-incident-response-commander.md +444 -0
  56. package/personas-teacher/engineering/engineering-it-service-manager.md +561 -0
  57. package/personas-teacher/engineering/engineering-minimal-change-engineer.md +207 -0
  58. package/personas-teacher/engineering/engineering-mobile-app-builder.md +493 -0
  59. package/personas-teacher/engineering/engineering-multi-agent-systems-architect.md +600 -0
  60. package/personas-teacher/engineering/engineering-orgscript-engineer.md +113 -0
  61. package/personas-teacher/engineering/engineering-prompt-engineer.md +202 -0
  62. package/personas-teacher/engineering/engineering-rapid-prototyper.md +462 -0
  63. package/personas-teacher/engineering/engineering-senior-developer.md +176 -0
  64. package/personas-teacher/engineering/engineering-software-architect.md +112 -0
  65. package/personas-teacher/engineering/engineering-solidity-smart-contract-engineer.md +522 -0
  66. package/personas-teacher/engineering/engineering-sre.md +90 -0
  67. package/personas-teacher/engineering/engineering-technical-writer.md +393 -0
  68. package/personas-teacher/engineering/engineering-voice-ai-integration-engineer.md +561 -0
  69. package/personas-teacher/engineering/engineering-wechat-mini-program-developer.md +350 -0
  70. package/personas-teacher/engineering/engineering-wordpress-shopping-cart.md +346 -0
  71. package/personas-teacher/examples/README.md +48 -0
  72. package/personas-teacher/examples/nexus-spatial-discovery.md +852 -0
  73. package/personas-teacher/examples/workflow-book-chapter.md +55 -0
  74. package/personas-teacher/examples/workflow-landing-page.md +119 -0
  75. package/personas-teacher/examples/workflow-startup-mvp.md +155 -0
  76. package/personas-teacher/examples/workflow-with-memory.md +238 -0
  77. package/personas-teacher/finance/finance-bookkeeper-controller.md +260 -0
  78. package/personas-teacher/finance/finance-financial-analyst.md +234 -0
  79. package/personas-teacher/finance/finance-fpa-analyst.md +263 -0
  80. package/personas-teacher/finance/finance-investment-researcher.md +272 -0
  81. package/personas-teacher/finance/finance-tax-strategist.md +239 -0
  82. package/personas-teacher/game-development/blender/blender-addon-engineer.md +234 -0
  83. package/personas-teacher/game-development/game-audio-engineer.md +264 -0
  84. package/personas-teacher/game-development/game-designer.md +167 -0
  85. package/personas-teacher/game-development/godot/godot-gameplay-scripter.md +334 -0
  86. package/personas-teacher/game-development/godot/godot-multiplayer-engineer.md +297 -0
  87. package/personas-teacher/game-development/godot/godot-shader-developer.md +266 -0
  88. package/personas-teacher/game-development/level-designer.md +208 -0
  89. package/personas-teacher/game-development/narrative-designer.md +243 -0
  90. package/personas-teacher/game-development/roblox-studio/roblox-avatar-creator.md +297 -0
  91. package/personas-teacher/game-development/roblox-studio/roblox-experience-designer.md +305 -0
  92. package/personas-teacher/game-development/roblox-studio/roblox-systems-scripter.md +325 -0
  93. package/personas-teacher/game-development/technical-artist.md +229 -0
  94. package/personas-teacher/game-development/unity/unity-architect.md +271 -0
  95. package/personas-teacher/game-development/unity/unity-editor-tool-developer.md +310 -0
  96. package/personas-teacher/game-development/unity/unity-multiplayer-engineer.md +321 -0
  97. package/personas-teacher/game-development/unity/unity-shader-graph-artist.md +269 -0
  98. package/personas-teacher/game-development/unreal-engine/unreal-multiplayer-architect.md +313 -0
  99. package/personas-teacher/game-development/unreal-engine/unreal-systems-engineer.md +310 -0
  100. package/personas-teacher/game-development/unreal-engine/unreal-technical-artist.md +256 -0
  101. package/personas-teacher/game-development/unreal-engine/unreal-world-builder.md +273 -0
  102. package/personas-teacher/gis/gis-3d-scene-developer.md +111 -0
  103. package/personas-teacher/gis/gis-analyst.md +91 -0
  104. package/personas-teacher/gis/gis-bim-specialist.md +108 -0
  105. package/personas-teacher/gis/gis-cartography-designer.md +150 -0
  106. package/personas-teacher/gis/gis-drone-reality-mapping.md +120 -0
  107. package/personas-teacher/gis/gis-geoai-ml-engineer.md +105 -0
  108. package/personas-teacher/gis/gis-geoprocessing-specialist.md +97 -0
  109. package/personas-teacher/gis/gis-qa-engineer.md +133 -0
  110. package/personas-teacher/gis/gis-solution-engineer.md +101 -0
  111. package/personas-teacher/gis/gis-spatial-data-engineer.md +97 -0
  112. package/personas-teacher/gis/gis-spatial-data-scientist.md +111 -0
  113. package/personas-teacher/gis/gis-technical-consultant.md +86 -0
  114. package/personas-teacher/gis/gis-web-gis-developer.md +108 -0
  115. package/personas-teacher/marketing/marketing-aeo-foundations.md +264 -0
  116. package/personas-teacher/marketing/marketing-agentic-search-optimizer.md +311 -0
  117. package/personas-teacher/marketing/marketing-ai-citation-strategist.md +170 -0
  118. package/personas-teacher/marketing/marketing-app-store-optimizer.md +321 -0
  119. package/personas-teacher/marketing/marketing-baidu-seo-specialist.md +226 -0
  120. package/personas-teacher/marketing/marketing-bilibili-content-strategist.md +199 -0
  121. package/personas-teacher/marketing/marketing-book-co-author.md +110 -0
  122. package/personas-teacher/marketing/marketing-carousel-growth-engine.md +199 -0
  123. package/personas-teacher/marketing/marketing-china-ecommerce-operator.md +283 -0
  124. package/personas-teacher/marketing/marketing-china-market-localization-strategist.md +283 -0
  125. package/personas-teacher/marketing/marketing-content-creator.md +54 -0
  126. package/personas-teacher/marketing/marketing-cross-border-ecommerce.md +259 -0
  127. package/personas-teacher/marketing/marketing-douyin-strategist.md +149 -0
  128. package/personas-teacher/marketing/marketing-email-strategist.md +249 -0
  129. package/personas-teacher/marketing/marketing-global-podcast-strategist.md +206 -0
  130. package/personas-teacher/marketing/marketing-growth-hacker.md +54 -0
  131. package/personas-teacher/marketing/marketing-instagram-curator.md +113 -0
  132. package/personas-teacher/marketing/marketing-kuaishou-strategist.md +223 -0
  133. package/personas-teacher/marketing/marketing-linkedin-content-creator.md +214 -0
  134. package/personas-teacher/marketing/marketing-livestream-commerce-coach.md +305 -0
  135. package/personas-teacher/marketing/marketing-multi-platform-publisher.md +217 -0
  136. package/personas-teacher/marketing/marketing-podcast-strategist.md +277 -0
  137. package/personas-teacher/marketing/marketing-pr-communications-manager.md +473 -0
  138. package/personas-teacher/marketing/marketing-private-domain-operator.md +308 -0
  139. package/personas-teacher/marketing/marketing-reddit-community-builder.md +123 -0
  140. package/personas-teacher/marketing/marketing-seo-specialist.md +321 -0
  141. package/personas-teacher/marketing/marketing-short-video-editing-coach.md +412 -0
  142. package/personas-teacher/marketing/marketing-social-media-strategist.md +125 -0
  143. package/personas-teacher/marketing/marketing-tiktok-strategist.md +125 -0
  144. package/personas-teacher/marketing/marketing-twitter-engager.md +126 -0
  145. package/personas-teacher/marketing/marketing-video-optimization-specialist.md +119 -0
  146. package/personas-teacher/marketing/marketing-wechat-official-account.md +145 -0
  147. package/personas-teacher/marketing/marketing-weibo-strategist.md +240 -0
  148. package/personas-teacher/marketing/marketing-x-twitter-intelligence-analyst.md +161 -0
  149. package/personas-teacher/marketing/marketing-xiaohongshu-specialist.md +138 -0
  150. package/personas-teacher/marketing/marketing-zhihu-strategist.md +162 -0
  151. package/personas-teacher/paid-media/paid-media-auditor.md +71 -0
  152. package/personas-teacher/paid-media/paid-media-creative-strategist.md +71 -0
  153. package/personas-teacher/paid-media/paid-media-paid-social-strategist.md +71 -0
  154. package/personas-teacher/paid-media/paid-media-ppc-strategist.md +71 -0
  155. package/personas-teacher/paid-media/paid-media-programmatic-buyer.md +71 -0
  156. package/personas-teacher/paid-media/paid-media-search-query-analyst.md +71 -0
  157. package/personas-teacher/paid-media/paid-media-tracking-specialist.md +71 -0
  158. package/personas-teacher/product/product-behavioral-nudge-engine.md +80 -0
  159. package/personas-teacher/product/product-feedback-synthesizer.md +119 -0
  160. package/personas-teacher/product/product-manager.md +469 -0
  161. package/personas-teacher/product/product-sprint-prioritizer.md +154 -0
  162. package/personas-teacher/product/product-trend-researcher.md +159 -0
  163. package/personas-teacher/project-management/project-management-experiment-tracker.md +198 -0
  164. package/personas-teacher/project-management/project-management-jira-workflow-steward.md +230 -0
  165. package/personas-teacher/project-management/project-management-meeting-notes-specialist.md +95 -0
  166. package/personas-teacher/project-management/project-management-project-shepherd.md +194 -0
  167. package/personas-teacher/project-management/project-management-studio-operations.md +200 -0
  168. package/personas-teacher/project-management/project-management-studio-producer.md +203 -0
  169. package/personas-teacher/project-management/project-manager-senior.md +135 -0
  170. package/personas-teacher/sales/sales-account-strategist.md +227 -0
  171. package/personas-teacher/sales/sales-coach.md +271 -0
  172. package/personas-teacher/sales/sales-deal-strategist.md +180 -0
  173. package/personas-teacher/sales/sales-discovery-coach.md +225 -0
  174. package/personas-teacher/sales/sales-engineer.md +182 -0
  175. package/personas-teacher/sales/sales-offer-lead-gen-strategist.md +257 -0
  176. package/personas-teacher/sales/sales-outbound-strategist.md +201 -0
  177. package/personas-teacher/sales/sales-pipeline-analyst.md +267 -0
  178. package/personas-teacher/sales/sales-proposal-strategist.md +217 -0
  179. package/personas-teacher/security/security-appsec-engineer.md +491 -0
  180. package/personas-teacher/security/security-architect.md +304 -0
  181. package/personas-teacher/security/security-blockchain-security-auditor.md +463 -0
  182. package/personas-teacher/security/security-cloud-security-architect.md +523 -0
  183. package/personas-teacher/security/security-compliance-auditor.md +158 -0
  184. package/personas-teacher/security/security-incident-responder.md +437 -0
  185. package/personas-teacher/security/security-penetration-tester.md +399 -0
  186. package/personas-teacher/security/security-senior-secops.md +750 -0
  187. package/personas-teacher/security/security-threat-detection-engineer.md +534 -0
  188. package/personas-teacher/security/security-threat-intelligence-analyst.md +644 -0
  189. package/personas-teacher/spatial-computing/macos-spatial-metal-engineer.md +337 -0
  190. package/personas-teacher/spatial-computing/terminal-integration-specialist.md +70 -0
  191. package/personas-teacher/spatial-computing/visionos-spatial-engineer.md +54 -0
  192. package/personas-teacher/spatial-computing/xr-cockpit-interaction-specialist.md +32 -0
  193. package/personas-teacher/spatial-computing/xr-immersive-developer.md +32 -0
  194. package/personas-teacher/spatial-computing/xr-interface-architect.md +32 -0
  195. package/personas-teacher/specialized/accounts-payable-agent.md +185 -0
  196. package/personas-teacher/specialized/agentic-identity-trust.md +387 -0
  197. package/personas-teacher/specialized/agents-orchestrator.md +367 -0
  198. package/personas-teacher/specialized/automation-governance-architect.md +216 -0
  199. package/personas-teacher/specialized/business-strategist.md +488 -0
  200. package/personas-teacher/specialized/change-management-consultant.md +497 -0
  201. package/personas-teacher/specialized/chief-financial-officer.md +388 -0
  202. package/personas-teacher/specialized/corporate-training-designer.md +192 -0
  203. package/personas-teacher/specialized/customer-service.md +398 -0
  204. package/personas-teacher/specialized/customer-success-manager.md +460 -0
  205. package/personas-teacher/specialized/data-consolidation-agent.md +60 -0
  206. package/personas-teacher/specialized/data-privacy-officer.md +412 -0
  207. package/personas-teacher/specialized/esg-sustainability-officer.md +396 -0
  208. package/personas-teacher/specialized/government-digital-presales-consultant.md +363 -0
  209. package/personas-teacher/specialized/grant-writer.md +511 -0
  210. package/personas-teacher/specialized/healthcare-customer-service.md +389 -0
  211. package/personas-teacher/specialized/healthcare-marketing-compliance.md +395 -0
  212. package/personas-teacher/specialized/hospitality-guest-services.md +603 -0
  213. package/personas-teacher/specialized/hr-onboarding.md +451 -0
  214. package/personas-teacher/specialized/identity-graph-operator.md +260 -0
  215. package/personas-teacher/specialized/language-translator.md +264 -0
  216. package/personas-teacher/specialized/legal-billing-time-tracking.md +569 -0
  217. package/personas-teacher/specialized/legal-client-intake.md +492 -0
  218. package/personas-teacher/specialized/legal-document-review.md +454 -0
  219. package/personas-teacher/specialized/loan-officer-assistant.md +555 -0
  220. package/personas-teacher/specialized/lsp-index-engineer.md +314 -0
  221. package/personas-teacher/specialized/ma-integration-manager.md +427 -0
  222. package/personas-teacher/specialized/medical-billing-coding-specialist.md +491 -0
  223. package/personas-teacher/specialized/operations-manager.md +399 -0
  224. package/personas-teacher/specialized/organizational-psychologist.md +391 -0
  225. package/personas-teacher/specialized/personal-growth-mentor.md +159 -0
  226. package/personas-teacher/specialized/real-estate-buyer-seller.md +596 -0
  227. package/personas-teacher/specialized/recruitment-specialist.md +509 -0
  228. package/personas-teacher/specialized/report-distribution-agent.md +65 -0
  229. package/personas-teacher/specialized/retail-customer-returns.md +566 -0
  230. package/personas-teacher/specialized/sales-data-extraction-agent.md +67 -0
  231. package/personas-teacher/specialized/sales-outreach.md +425 -0
  232. package/personas-teacher/specialized/specialized-chief-of-staff.md +279 -0
  233. package/personas-teacher/specialized/specialized-civil-engineer.md +356 -0
  234. package/personas-teacher/specialized/specialized-cultural-intelligence-strategist.md +88 -0
  235. package/personas-teacher/specialized/specialized-developer-advocate.md +317 -0
  236. package/personas-teacher/specialized/specialized-document-generator.md +55 -0
  237. package/personas-teacher/specialized/specialized-french-consulting-market.md +192 -0
  238. package/personas-teacher/specialized/specialized-korean-business-navigator.md +216 -0
  239. package/personas-teacher/specialized/specialized-mcp-builder.md +248 -0
  240. package/personas-teacher/specialized/specialized-model-qa.md +488 -0
  241. package/personas-teacher/specialized/specialized-pricing-analyst.md +243 -0
  242. package/personas-teacher/specialized/specialized-salesforce-architect.md +180 -0
  243. package/personas-teacher/specialized/specialized-strategy-duel-agent.md +130 -0
  244. package/personas-teacher/specialized/specialized-workflow-architect.md +597 -0
  245. package/personas-teacher/specialized/study-abroad-advisor.md +282 -0
  246. package/personas-teacher/specialized/supply-chain-strategist.md +582 -0
  247. package/personas-teacher/specialized/zk-steward.md +211 -0
  248. package/personas-teacher/strategy/EXECUTIVE-BRIEF.md +95 -0
  249. package/personas-teacher/strategy/QUICKSTART.md +194 -0
  250. package/personas-teacher/strategy/coordination/agent-activation-prompts.md +401 -0
  251. package/personas-teacher/strategy/coordination/handoff-templates.md +357 -0
  252. package/personas-teacher/strategy/nexus-strategy.md +1110 -0
  253. package/personas-teacher/strategy/playbooks/phase-0-discovery.md +178 -0
  254. package/personas-teacher/strategy/playbooks/phase-1-strategy.md +238 -0
  255. package/personas-teacher/strategy/playbooks/phase-2-foundation.md +278 -0
  256. package/personas-teacher/strategy/playbooks/phase-3-build.md +286 -0
  257. package/personas-teacher/strategy/playbooks/phase-4-hardening.md +332 -0
  258. package/personas-teacher/strategy/playbooks/phase-5-launch.md +277 -0
  259. package/personas-teacher/strategy/playbooks/phase-6-operate.md +318 -0
  260. package/personas-teacher/strategy/runbooks/scenario-enterprise-feature.md +157 -0
  261. package/personas-teacher/strategy/runbooks/scenario-incident-response.md +217 -0
  262. package/personas-teacher/strategy/runbooks/scenario-marketing-campaign.md +187 -0
  263. package/personas-teacher/strategy/runbooks/scenario-startup-mvp.md +154 -0
  264. package/personas-teacher/support/support-analytics-reporter.md +365 -0
  265. package/personas-teacher/support/support-executive-summary-generator.md +212 -0
  266. package/personas-teacher/support/support-finance-tracker.md +442 -0
  267. package/personas-teacher/support/support-infrastructure-maintainer.md +618 -0
  268. package/personas-teacher/support/support-legal-compliance-checker.md +588 -0
  269. package/personas-teacher/support/support-support-responder.md +585 -0
  270. package/personas-teacher/testing/testing-accessibility-auditor.md +316 -0
  271. package/personas-teacher/testing/testing-api-tester.md +306 -0
  272. package/personas-teacher/testing/testing-evidence-collector.md +210 -0
  273. package/personas-teacher/testing/testing-performance-benchmarker.md +268 -0
  274. package/personas-teacher/testing/testing-reality-checker.md +236 -0
  275. package/personas-teacher/testing/testing-test-results-analyzer.md +305 -0
  276. package/personas-teacher/testing/testing-tool-evaluator.md +394 -0
  277. package/personas-teacher/testing/testing-workflow-optimizer.md +450 -0
  278. package/personas-teacher/tools.json +19 -0
  279. package/skill/add/SKILL.md +20 -14
  280. package/skill/add/advisor.md +33 -34
  281. package/skill/add/confidence.md +1 -1
  282. package/skill/add/deltas.md +12 -13
  283. package/skill/add/design.md +52 -49
  284. package/skill/add/fold.md +18 -16
  285. package/skill/add/intake.md +4 -3
  286. package/skill/add/loop.md +3 -4
  287. package/skill/add/phases/0-ground.md +32 -34
  288. package/skill/add/phases/0-setup.md +22 -21
  289. package/skill/add/phases/1-specify.md +8 -6
  290. package/skill/add/phases/3-contract.md +1 -1
  291. package/skill/add/phases/4-tests.md +9 -10
  292. package/skill/add/phases/5-build.md +17 -13
  293. package/skill/add/phases/6-verify.md +9 -4
  294. package/skill/add/phases/7-observe.md +2 -1
  295. package/skill/add/report-template.md +62 -18
  296. package/skill/add/run.md +5 -3
  297. package/skill/add/scope.md +2 -2
  298. package/skill/add/sensitivity.md +51 -0
  299. package/skill/add/streams.md +31 -23
  300. package/tooling/add.py +906 -28
  301. package/tooling/add_engine/autonomy.py +36 -1
  302. package/tooling/add_engine/constants.py +56 -3
  303. package/tooling/add_engine/guidelines.py +22 -20
  304. package/tooling/add_engine/predicates.py +56 -3
  305. package/tooling/add_engine/search.py +165 -0
  306. package/tooling/templates/GLOSSARY.md.tmpl +16 -0
  307. package/tooling/templates/MILESTONE.md.tmpl +9 -0
  308. package/tooling/templates/PROMPT.persona.md.tmpl +44 -0
  309. package/tooling/templates/TASK.fast.md.tmpl +1 -0
  310. package/tooling/templates/TASK.md.tmpl +39 -6
  311. package/tooling/templates/gitignore.tmpl +12 -0
  312. package/tooling/templates/personas/_template.md.tmpl +60 -0
@@ -93,7 +93,7 @@ The flow runs in two directions under two rules that never conflict. **Backward
93
93
  | 6 Verify | own the residue (security · concurrency · architecture); approve when `conservative` | gather evidence; **auto-PASS on complete evidence** under `autonomy: auto` |
94
94
  | 7 Observe | read the signal; consolidate confirmed deltas into PROJECT.md | run behind a flag; emit lessons learned |
95
95
 
96
- **What the human sees when it is their turn — the decision arc.** Whenever the flow stops for the human — the baseline approval that ends setup, the contract-freeze decision point and an escalated verify gate within each task, and the wider decision points of the loop (intake · scope · milestone close · stage graduation) — the AI opens its report with the **decision arc**: three engine-sourced lines — `goal:` the milestone goal the work serves · `done:` the proven progress toward it · `plan:` what comes next. The arc renders first, above the report's summary, so the human confirms with sight of the whole trajectory rather than a local snapshot. Within that report the AI also presents the **DECISION** itself as a **guided choice** — one highlighted **recommended pick** (`▶ … (recommended)`) plus its real, described alternatives — so the human chooses with the recommendation and each option's consequence in view rather than a bare next-step line. Both are presentation only — they never add a gate or change an outcome, and the guided choice fires at human gates only. See [Appendix C](./appendix-c-glossary.md) and the `add` skill's `report-template.md` for the convention itself.
96
+ **What the human sees when it is their turn — the decision banner and arc.** Whenever the flow stops for the human — the baseline approval that ends setup, the contract-freeze decision point and an escalated verify gate within each task, and the wider decision points of the loop (intake · scope · milestone close · stage graduation) — the AI opens its report with a **banner** (`PLAN · <title> · <gate> → APPROVE?` plus a file-path line) and the **decision arc**: three engine-sourced lines — `goal:` the milestone goal the work serves · `done:` the proven progress toward it · `plan:` what comes next. The arc renders above the report's summary, so the human confirms with sight of the whole trajectory rather than a local snapshot. Within that report the AI also presents **APPROVE** itself as a **guided choice** — one highlighted **recommended pick** (`▶ … (recommended)`) plus its real, described alternatives — so the human chooses with the recommendation and each option's consequence in view rather than a bare next-step line. Both are presentation only — they never add a gate or change an outcome, and the guided choice fires at human gates only. See [Appendix C](./appendix-c-glossary.md) and the `add` skill's `report-template.md` for the convention itself.
97
97
 
98
98
  ## What survives, and what is disposable
99
99
 
@@ -35,6 +35,10 @@ Four parts, kept short:
35
35
 
36
36
  Naming the errors matters. "Reject bad amounts" is an instruction to guess; `amount <= 0 -> "amount_invalid"` is a rule that produces a testable scenario and a defined contract response.
37
37
 
38
+ ### Rule IDs (optional — opt-in by usage)
39
+
40
+ Give each Must a stable `M<n>:` ID; a Reject's own error code already IS its ID (referenced later as `R:<error_code>`). Once a task uses a tag anywhere in §2 SCENARIOS or §4 TESTS, `add.py check` starts asking that every Must/Reject be covered by a scenario tag or a test's `covers:` line — a task that never tags anything is never retro-flagged. See the template's own inline example for the exact grammar.
41
+
38
42
  ## Template
39
43
 
40
44
  ```
@@ -58,6 +58,10 @@ Scenario: not my account
58
58
 
59
59
  The `And no balance changes` line is doing real work: it specifies that a rejected transfer must leave the world untouched — a property the AI could easily violate by deducting before checking.
60
60
 
61
+ ### Tagging back to a rule ID (optional — opt-in by usage)
62
+
63
+ If §1's Musts and Rejects carry stable IDs (`M1:`, and a Reject's own error code as `R:<error_code>`), tag each `Scenario:` line with the ID(s) it covers, e.g. `# M1, R:amount_invalid`. Once a task tags even one scenario this way, `add.py check` starts confirming every §1 ID is covered by a tag here or a `covers:` line in §4 TESTS — a task that never tags anything is left alone. See the template's own inline example for the exact grammar.
64
+
61
65
  ## Cover the edge cases
62
66
 
63
67
  The transfer above is one domain; the same gaps recur in every domain — an HR leave request, a marketing campaign send, a checkout. Beyond the spec's "Reject" rules, sweep the recurring gaps and add a scenario for each that applies (or rule it out on purpose): boundary, duplicate/idempotent, ownership, stale/out-of-order, partial failure, concurrency, malformed input, limits/volume.
@@ -50,6 +50,10 @@ def test_not_my_account():
50
50
 
51
51
  Run this now, with no implementation: all three fail. That is the correct, honest starting point for the build.
52
52
 
53
+ ### Declaring which rule a test covers (optional — opt-in by usage)
54
+
55
+ If §1's Musts and Rejects carry stable IDs, add a trailing `covers: M1, R:amount_invalid` to a test-plan line to declare which ID(s) that test satisfies. Once any test in a task declares a `covers:` line (or any §2 scenario carries a tag), `add.py check` confirms every §1 ID is covered by a tag or a `covers:` line somewhere — a task that never uses either is left alone. See the template's own inline example for the exact grammar.
56
+
53
57
  ## The AI's role here
54
58
 
55
59
  The AI generates the test suite from the scenarios and contract. Your job is to confirm two things it cannot judge for itself: that each test asserts *behavior* rather than internal detail, and that none of them pass by accident before code exists. See `playbook/4_tests.md` in [Appendix B](./appendix-b-prompts.md).
@@ -31,9 +31,15 @@ Before the build, the task pre-declares its **build expectations** — the obser
31
31
  - [ ] Coverage did not decrease.
32
32
  - [ ] No test or contract was altered during the build.
33
33
  - [ ] Every pre-declared build expectation is confirmed by real evidence (not merely a green test).
34
+ - [ ] Every §1 Must/Reject rule still traces to a §2 scenario tag or a §4 `covers:` line.
35
+ - [ ] Every symbol §3's contract cites still resolves in the *current* tree, not just at Ground SHA.
34
36
 
35
37
  If any of these is false, stop here and return to the build; there is nothing to verify yet.
36
38
 
39
+ A green suite proves the tests you wrote pass — it says nothing about a rule you never wired a scenario or test to at all. That is a different failure than the ones Part four covers: not a cheated pass, but a rule with no trace of ever being checked. `add.py check` scans every task project-wide for exactly this — a §1 Must or Reject with no §2 scenario tag and no §4 `covers:` line — but that sweep is easy to forget to run. `add.py audit`'s `rule_coverage_gap` notice surfaces the SAME check for the task actually at this gate, the moment it reaches Verify (a task that never adopted the tag convention at all is silently grandfathered, never retro-flagged). Neither blocks the gate; both make an already-real gap impossible to miss.
40
+
41
+ The second check guards against a quieter kind of drift. §0's Ground SHA anchors the symbols §3's contract cites to the commit they were read at — but code moves *during* the build that follows. Before this gate, re-resolve every one of those symbols against the tree as it stands now, not the Ground SHA snapshot, and record it in §6's **Live-verify evidence** block. A moved or renamed anchor caught here is a one-line note; the same drift left silent is a future reader chasing a line number that no longer means what it did at Ground.
42
+
37
43
  ## Part two — check what tests miss
38
44
 
39
45
  Automated tests are excellent at behavior on defined inputs and poor at a few specific things. Check those by hand, every time:
@@ -77,6 +83,7 @@ A security finding is always a `HARD-STOP`; it is never waved through with a wai
77
83
 
78
84
  - [ ] All tests pass (the evidence).
79
85
  - [ ] Every pre-declared build expectation is confirmed by observable evidence.
86
+ - [ ] Every §1 rule traces to §2/§4; every §3-cited symbol still resolves in the current tree.
80
87
  - [ ] Concurrency/timing of the risky operation is safe.
81
88
  - [ ] No exposed secrets, injection openings, or unexpected dependencies.
82
89
  - [ ] Layering and dependencies follow `CONVENTIONS.md`.
@@ -0,0 +1,80 @@
1
+ # 18 · Personas — the project-fit learning loop
2
+
3
+ [← 17 Components](./17-components.md) · [Contents](./README.md) · Next: [Appendix A Templates →](./appendix-a-templates.md)
4
+
5
+ ---
6
+
7
+ A **persona** is a project-fit requirements lens the agent adopts so its work matches *this*
8
+ codebase's standards instead of a generic default. It is not a chat costume: a persona is a small,
9
+ versioned file under `.add/personas/<slug>.md` with three machine-readable parts —
10
+
11
+ - **Identity** — the stance the worker takes (e.g. *a payments engineer who treats money as exact*).
12
+ - **Critical Rules** — the constraints that must hold (the non-negotiables for this domain).
13
+ - **Success Metrics** — the measurable done-bar (what "good" looks like, in numbers where it can).
14
+
15
+ The **persona loop** is how those files come to exist, improve, and get used: **seed → grow →
16
+ apply**. The loop is opt-in and additive — a project with no personas behaves exactly as before.
17
+
18
+ ## Where personas come from — the teacher
19
+
20
+ ADD does not invent personas from nothing. It learns them from a **teacher**: a corpus of worked
21
+ agent definitions that ADD ships as a vendored local library at `.add/personas-teacher/`.
22
+ The teacher is read **off-build**, by the AI, while drafting a persona — it is a *source of ideas*,
23
+ **never a runtime dependency**: nothing in the engine imports it, fetches it, or needs it present to
24
+ run. You distil a teacher entry down to the three-part shape above and commit the result; from then
25
+ on the project owns that persona outright.
26
+
27
+ ## Seed — at setup
28
+
29
+ The first personas are **seeded** during project setup, from the foundation (`PROJECT.md`'s domain
30
+ and standards). Setup proposes a starter persona or two that fit the project's domain; the human
31
+ confirms. Seeding writes `.add/personas/<slug>.md` and nothing else — no behaviour changes until a
32
+ task actually applies one.
33
+
34
+ ## Grow — observe → delta → consolidate
35
+
36
+ Personas are **living documents**: they improve through the same loop the foundation uses. In a
37
+ task's **observe** phase the AI emits a **persona delta** — a one-line, tagged proposal to add or
38
+ sharpen a critical-rule or success-metric, written `open` with evidence (just like a lesson learned).
39
+ At a retrospective the human **consolidates** confirmed deltas into the persona file (the same
40
+ `fold` step the foundation uses), bumping it forward. The consolidation is judgment-free
41
+ transcription: the engine routes a confirmed delta into the named
42
+ persona's `## Critical Rules` or `## Success Metrics` section and **never clobbers** existing content.
43
+ So a persona gets *more* accurate every milestone instead of drifting.
44
+
45
+ ## Apply — three surfaces
46
+
47
+ A seeded, grown persona earns its keep when work adopts it. Three surfaces apply a persona, and all
48
+ three treat it the same way — as **advice**, never authority:
49
+
50
+ - **UDD (design).** At the design-definition loop a persona frames the requirements lens: which
51
+ rules and metrics a UI/UX slice must satisfy for this project's users.
52
+ - **advisor / streams (delegation).** When you delegate a piece of your plan to a subagent, its
53
+ `<persona>` block **selects** the best-fit `.add/personas/<slug>.md` and the returned verdict
54
+ **records** which persona did the work. The independent earned-green refute-read selects a
55
+ **Code-Reviewer** persona whose findings carry severity markers — 🔴 blocker · 🟡 concern · 💭 note.
56
+ The same canonical persona body rides every runner (Claude, Cursor, Copilot, Codex), so a
57
+ **cross-runner subagent** behaves identically wherever it is spawned.
58
+ - **build (overlay).** While building, the orchestrating agent may load the active persona as a
59
+ domain identity **overlay** layered on `SOUL.md`: SOUL is the voice and trust rules; the persona is
60
+ the domain stance. The overlay **never rewrites** SOUL.md (it is human-owned) and never overrides a
61
+ trust rule.
62
+
63
+ ## The non-negotiable — a persona never lowers a gate
64
+
65
+ A persona changes *how carefully* the work is done; it never changes *what passes*. This is the one
66
+ hard rule across every surface:
67
+
68
+ - A **security** finding is always a **HARD-STOP**, whatever persona was adopted.
69
+ - High-risk scope still escalates to the human; a stronger persona never buys back a gate.
70
+ - The engine stays **NO-EXEC** throughout: it never spawns a subagent, never runs a persona, never
71
+ reads one on the build path. Selecting, loading, and applying a persona is the orchestrating
72
+ agent's judgment — the engine only records what was used (for the audit trail) and measures that
73
+ the record is present; it never auto-passes on a persona's say-so.
74
+
75
+ In short: a persona makes the agent *fit the project*. Direction, freezing, evidence, and the gate
76
+ are exactly as strict as they were before — the loop adds expertise, not permission.
77
+
78
+ ---
79
+
80
+ [← 17 Components](./17-components.md) · [Contents](./README.md) · Next: [Appendix A Templates →](./appendix-a-templates.md)
Binary file
@@ -18,6 +18,10 @@
18
18
 
19
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
+ **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
+
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
+
21
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).
22
26
 
23
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).
@@ -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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotspace/add",
3
- "version": "1.14.0",
3
+ "version": "1.16.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"
@@ -18,12 +18,15 @@
18
18
  "files": [
19
19
  "bin/",
20
20
  "skill/",
21
+ "agents/",
21
22
  "tooling/add.py",
22
23
  "tooling/add_engine/",
23
24
  "!tooling/add_engine/__pycache__",
24
25
  "!**/*.pyc",
25
26
  "tooling/templates/",
26
27
  "docs/",
28
+ "personas-teacher/",
29
+ "THIRD_PARTY_NOTICES.md",
27
30
  "README.md",
28
31
  "GETTING-STARTED.md",
29
32
  "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.