clikit-plugin 0.1.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 (156) hide show
  1. package/AGENTS.md +46 -0
  2. package/README.md +282 -0
  3. package/command/commit.md +137 -0
  4. package/command/create.md +150 -0
  5. package/command/debug.md +185 -0
  6. package/command/design.md +82 -0
  7. package/command/handoff.md +95 -0
  8. package/command/import-plan.md +175 -0
  9. package/command/init.md +112 -0
  10. package/command/issue.md +110 -0
  11. package/command/plan.md +205 -0
  12. package/command/pr.md +174 -0
  13. package/command/research.md +103 -0
  14. package/command/resume.md +80 -0
  15. package/command/review-codebase.md +228 -0
  16. package/command/review.md +135 -0
  17. package/command/ship.md +109 -0
  18. package/command/start.md +77 -0
  19. package/command/status.md +123 -0
  20. package/command/verify.md +79 -0
  21. package/command/vision.md +142 -0
  22. package/dist/agents/index.d.ts +4 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/cli.d.ts +3 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +103 -0
  27. package/dist/clikit.schema.json +423 -0
  28. package/dist/commands/index.d.ts +4 -0
  29. package/dist/commands/index.d.ts.map +1 -0
  30. package/dist/config.d.ts +118 -0
  31. package/dist/config.d.ts.map +1 -0
  32. package/dist/hooks/auto-format.d.ts +30 -0
  33. package/dist/hooks/auto-format.d.ts.map +1 -0
  34. package/dist/hooks/comment-checker.d.ts +17 -0
  35. package/dist/hooks/comment-checker.d.ts.map +1 -0
  36. package/dist/hooks/compaction.d.ts +60 -0
  37. package/dist/hooks/compaction.d.ts.map +1 -0
  38. package/dist/hooks/empty-message-sanitizer.d.ts +9 -0
  39. package/dist/hooks/empty-message-sanitizer.d.ts.map +1 -0
  40. package/dist/hooks/env-context.d.ts +43 -0
  41. package/dist/hooks/env-context.d.ts.map +1 -0
  42. package/dist/hooks/git-guard.d.ts +14 -0
  43. package/dist/hooks/git-guard.d.ts.map +1 -0
  44. package/dist/hooks/index.d.ts +35 -0
  45. package/dist/hooks/index.d.ts.map +1 -0
  46. package/dist/hooks/ritual-enforcer.d.ts +29 -0
  47. package/dist/hooks/ritual-enforcer.d.ts.map +1 -0
  48. package/dist/hooks/security-check.d.ts +20 -0
  49. package/dist/hooks/security-check.d.ts.map +1 -0
  50. package/dist/hooks/session-notification.d.ts +23 -0
  51. package/dist/hooks/session-notification.d.ts.map +1 -0
  52. package/dist/hooks/subagent-question-blocker.d.ts +11 -0
  53. package/dist/hooks/subagent-question-blocker.d.ts.map +1 -0
  54. package/dist/hooks/swarm-enforcer.d.ts +31 -0
  55. package/dist/hooks/swarm-enforcer.d.ts.map +1 -0
  56. package/dist/hooks/todo-enforcer.d.ts +19 -0
  57. package/dist/hooks/todo-enforcer.d.ts.map +1 -0
  58. package/dist/hooks/truncator.d.ts +28 -0
  59. package/dist/hooks/truncator.d.ts.map +1 -0
  60. package/dist/hooks/typecheck-gate.d.ts +31 -0
  61. package/dist/hooks/typecheck-gate.d.ts.map +1 -0
  62. package/dist/index.d.ts +13 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +5785 -0
  65. package/dist/skills/index.d.ts +9 -0
  66. package/dist/skills/index.d.ts.map +1 -0
  67. package/dist/tools/beads-memory-sync.d.ts +17 -0
  68. package/dist/tools/beads-memory-sync.d.ts.map +1 -0
  69. package/dist/tools/context-summary.d.ts +21 -0
  70. package/dist/tools/context-summary.d.ts.map +1 -0
  71. package/dist/tools/index.d.ts +7 -0
  72. package/dist/tools/index.d.ts.map +1 -0
  73. package/dist/tools/memory.d.ts +56 -0
  74. package/dist/tools/memory.d.ts.map +1 -0
  75. package/dist/tools/observation.d.ts +28 -0
  76. package/dist/tools/observation.d.ts.map +1 -0
  77. package/dist/tools/quick-research.d.ts +16 -0
  78. package/dist/tools/quick-research.d.ts.map +1 -0
  79. package/dist/tools/swarm.d.ts +57 -0
  80. package/dist/tools/swarm.d.ts.map +1 -0
  81. package/dist/types.d.ts +32 -0
  82. package/dist/types.d.ts.map +1 -0
  83. package/memory/_templates/handoff.md +114 -0
  84. package/memory/_templates/plan.md +135 -0
  85. package/memory/_templates/prd.md +147 -0
  86. package/memory/_templates/research.md +108 -0
  87. package/memory/_templates/review.md +117 -0
  88. package/memory/_templates/spec.md +116 -0
  89. package/memory/beads/.gitkeep +0 -0
  90. package/memory/handoffs/.gitkeep +0 -0
  91. package/memory/plans/.gitkeep +0 -0
  92. package/memory/prds/.gitkeep +0 -0
  93. package/memory/research/.gitkeep +0 -0
  94. package/memory/reviews/.gitkeep +0 -0
  95. package/memory/specs/.gitkeep +0 -0
  96. package/package.json +64 -0
  97. package/skill/accessibility-audit/SKILL.md +115 -0
  98. package/skill/beads/SKILL.md +56 -0
  99. package/skill/beads-bridge/SKILL.md +45 -0
  100. package/skill/brainstorming/SKILL.md +41 -0
  101. package/skill/chrome-devtools/SKILL.md +36 -0
  102. package/skill/cloudflare/SKILL.md +96 -0
  103. package/skill/condition-based-waiting/SKILL.md +92 -0
  104. package/skill/deep-research/SKILL.md +130 -0
  105. package/skill/defense-in-depth/SKILL.md +89 -0
  106. package/skill/design-system-audit/SKILL.md +136 -0
  107. package/skill/development-lifecycle/SKILL.md +58 -0
  108. package/skill/dispatching-parallel-agents/SKILL.md +94 -0
  109. package/skill/executing-plans/SKILL.md +54 -0
  110. package/skill/figma/SKILL.md +34 -0
  111. package/skill/finishing-a-development-branch/SKILL.md +127 -0
  112. package/skill/frontend-aesthetics/SKILL.md +63 -0
  113. package/skill/gemini-large-context/SKILL.md +80 -0
  114. package/skill/mockup-to-code/SKILL.md +98 -0
  115. package/skill/mqdh/SKILL.md +54 -0
  116. package/skill/notebooklm/SKILL.md +71 -0
  117. package/skill/playwright/SKILL.md +37 -0
  118. package/skill/playwriter/SKILL.md +56 -0
  119. package/skill/polar/SKILL.md +39 -0
  120. package/skill/receiving-code-review/SKILL.md +47 -0
  121. package/skill/requesting-code-review/SKILL.md +47 -0
  122. package/skill/resend/SKILL.md +85 -0
  123. package/skill/ritual-workflow/SKILL.md +101 -0
  124. package/skill/root-cause-tracing/SKILL.md +73 -0
  125. package/skill/session-management/SKILL.md +53 -0
  126. package/skill/sharing-skills/SKILL.md +50 -0
  127. package/skill/source-code-research/SKILL.md +138 -0
  128. package/skill/subagent-driven-development/SKILL.md +69 -0
  129. package/skill/supabase/SKILL.md +80 -0
  130. package/skill/supabase-postgres-best-practices/SKILL.md +168 -0
  131. package/skill/swarm-coordination/SKILL.md +54 -0
  132. package/skill/systematic-debugging/SKILL.md +58 -0
  133. package/skill/test-driven-development/SKILL.md +53 -0
  134. package/skill/testing-anti-patterns/SKILL.md +100 -0
  135. package/skill/testing-skills-with-subagents/SKILL.md +102 -0
  136. package/skill/ui-ux-research/SKILL.md +93 -0
  137. package/skill/using-git-worktrees/SKILL.md +129 -0
  138. package/skill/v0/SKILL.md +67 -0
  139. package/skill/v1-run/SKILL.md +85 -0
  140. package/skill/vercel-react-best-practices/SKILL.md +174 -0
  141. package/skill/verification-before-completion/SKILL.md +55 -0
  142. package/skill/visual-analysis/SKILL.md +113 -0
  143. package/skill/writing-plans/SKILL.md +55 -0
  144. package/skill/writing-skills/SKILL.md +68 -0
  145. package/src/agents/AGENTS.md +46 -0
  146. package/src/agents/build.md +170 -0
  147. package/src/agents/explore.md +113 -0
  148. package/src/agents/general.md +92 -0
  149. package/src/agents/index.ts +64 -0
  150. package/src/agents/librarian.md +116 -0
  151. package/src/agents/looker.md +107 -0
  152. package/src/agents/oracle.md +138 -0
  153. package/src/agents/plan.md +78 -0
  154. package/src/agents/review.md +98 -0
  155. package/src/agents/scout.md +84 -0
  156. package/src/agents/vision.md +159 -0
@@ -0,0 +1,9 @@
1
+ export interface SkillConfig {
2
+ name: string;
3
+ description: string;
4
+ content: string;
5
+ location: string;
6
+ }
7
+ export declare function getBuiltinSkills(): Record<string, SkillConfig>;
8
+ export declare function findSkill(skills: Record<string, SkillConfig>, query: string): SkillConfig | null;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAsC9D;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAuBhG"}
@@ -0,0 +1,17 @@
1
+ export interface BeadsMemorySyncParams {
2
+ operation: "sync_to_memory" | "sync_from_memory" | "link" | "status";
3
+ beadId?: string;
4
+ observationId?: number;
5
+ }
6
+ export interface BeadsMemorySyncResult {
7
+ success: boolean;
8
+ operation: string;
9
+ details: {
10
+ tasksSynced?: number;
11
+ observationsLinked?: number;
12
+ memoryCount?: number;
13
+ activeTasks?: number;
14
+ };
15
+ }
16
+ export declare function beadsMemorySync(params: BeadsMemorySyncParams): BeadsMemorySyncResult;
17
+ //# sourceMappingURL=beads-memory-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beads-memory-sync.d.ts","sourceRoot":"","sources":["../../src/tools/beads-memory-sync.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAiBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAgBpF"}
@@ -0,0 +1,21 @@
1
+ export interface ContextSummaryParams {
2
+ scope?: "session" | "bead" | "all";
3
+ beadId?: string;
4
+ maxTokens?: number;
5
+ }
6
+ export interface ContextSummaryResult {
7
+ summary: string;
8
+ sections: {
9
+ decisions: string[];
10
+ learnings: string[];
11
+ blockers: string[];
12
+ progress: string[];
13
+ };
14
+ recentFiles: {
15
+ read: string[];
16
+ modified: string[];
17
+ };
18
+ tokenEstimate: number;
19
+ }
20
+ export declare function contextSummary(params?: ContextSummaryParams): ContextSummaryResult;
21
+ //# sourceMappingURL=context-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-summary.d.ts","sourceRoot":"","sources":["../../src/tools/context-summary.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;CACvB;AASD,wBAAgB,cAAc,CAAC,MAAM,GAAE,oBAAyB,GAAG,oBAAoB,CAwFtF"}
@@ -0,0 +1,7 @@
1
+ export { memoryRead, memorySearch, memoryGet, memoryTimeline, memoryUpdate, memoryAdmin, type MemorySearchParams, type MemorySearchResult, type MemoryObservation, type MemoryUpdateParams, type MemoryTimelineParams, type MemoryAdminParams, type MemoryAdminResult, } from "./memory";
2
+ export { createObservation, getObservationsByType, getObservationsByBead, linkObservations, type ObservationParams, type ObservationResult, } from "./observation";
3
+ export { swarm, type SwarmParams, type SwarmTask, type SwarmResult, type SwarmPlanResult, type SwarmMonitorResult, type SwarmDelegateResult, type SwarmAbortResult, } from "./swarm";
4
+ export { beadsMemorySync, type BeadsMemorySyncParams, type BeadsMemorySyncResult, } from "./beads-memory-sync";
5
+ export { quickResearch, type QuickResearchParams, type QuickResearchResult, } from "./quick-research";
6
+ export { contextSummary, type ContextSummaryParams, type ContextSummaryResult, } from "./context-summary";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,cAAc,EACd,YAAY,EACZ,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,56 @@
1
+ export interface MemoryObservation {
2
+ id: number;
3
+ type: string;
4
+ narrative: string;
5
+ facts: string[];
6
+ confidence: number;
7
+ files_read: string[];
8
+ files_modified: string[];
9
+ created_at: string;
10
+ expires_at?: string;
11
+ }
12
+ export declare function memoryRead(relativePath: string): string | null;
13
+ export interface MemorySearchParams {
14
+ query: string;
15
+ type?: string;
16
+ limit?: number;
17
+ }
18
+ export interface MemorySearchResult {
19
+ id: number;
20
+ type: string;
21
+ narrative: string;
22
+ confidence: number;
23
+ created_at: string;
24
+ }
25
+ export declare function memorySearch(params: MemorySearchParams): MemorySearchResult[];
26
+ export declare function memoryGet(ids: string): MemoryObservation[];
27
+ export interface MemoryTimelineParams {
28
+ id: number;
29
+ before?: number;
30
+ after?: number;
31
+ }
32
+ export declare function memoryTimeline(params: MemoryTimelineParams): MemoryObservation[];
33
+ export interface MemoryUpdateParams {
34
+ type: string;
35
+ narrative: string;
36
+ facts?: string[];
37
+ confidence?: number;
38
+ files_read?: string[];
39
+ files_modified?: string[];
40
+ expires_at?: string;
41
+ }
42
+ export declare function memoryUpdate(params: MemoryUpdateParams): {
43
+ id: number;
44
+ };
45
+ export interface MemoryAdminParams {
46
+ operation: "status" | "archive" | "checkpoint" | "vacuum" | "migrate";
47
+ older_than_days?: number;
48
+ dry_run?: boolean;
49
+ }
50
+ export interface MemoryAdminResult {
51
+ operation: string;
52
+ success: boolean;
53
+ details: Record<string, unknown>;
54
+ }
55
+ export declare function memoryAdmin(params: MemoryAdminParams): MemoryAdminResult;
56
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAoDD,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CA+B7E;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAe1D;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,iBAAiB,EAAE,CA2BhF;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAmBvE;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAsExE"}
@@ -0,0 +1,28 @@
1
+ export interface ObservationParams {
2
+ type: "learning" | "decision" | "blocker" | "progress" | "handoff";
3
+ narrative: string;
4
+ facts?: string[];
5
+ confidence?: number;
6
+ files_read?: string[];
7
+ files_modified?: string[];
8
+ bead_id?: string;
9
+ concepts?: string[];
10
+ expires_at?: string;
11
+ }
12
+ export interface ObservationResult {
13
+ id: number;
14
+ type: string;
15
+ narrative: string;
16
+ facts: string[];
17
+ confidence: number;
18
+ files_read: string[];
19
+ files_modified: string[];
20
+ concepts: string[];
21
+ bead_id?: string;
22
+ created_at: string;
23
+ }
24
+ export declare function createObservation(params: ObservationParams): ObservationResult;
25
+ export declare function getObservationsByType(type: string, limit?: number): ObservationResult[];
26
+ export declare function getObservationsByBead(beadId: string): ObservationResult[];
27
+ export declare function linkObservations(observationId: number, concept: string): void;
28
+ //# sourceMappingURL=observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/tools/observation.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgCD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAgC9E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,iBAAiB,EAAE,CAanF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAazE;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAY7E"}
@@ -0,0 +1,16 @@
1
+ import { type MemorySearchResult } from "./memory";
2
+ export interface QuickResearchParams {
3
+ query: string;
4
+ sources?: ("memory" | "context7" | "github")[];
5
+ language?: string;
6
+ limit?: number;
7
+ }
8
+ export interface QuickResearchResult {
9
+ query: string;
10
+ memory?: MemorySearchResult[];
11
+ context7Hint?: string;
12
+ githubHint?: string;
13
+ suggestion: string;
14
+ }
15
+ export declare function quickResearch(params: QuickResearchParams): QuickResearchResult;
16
+ //# sourceMappingURL=quick-research.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-research.d.ts","sourceRoot":"","sources":["../../src/tools/quick-research.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAkC9E"}
@@ -0,0 +1,57 @@
1
+ export interface SwarmPlanParams {
2
+ operation: "plan";
3
+ tasks: SwarmTask[];
4
+ parallelism?: number;
5
+ }
6
+ export interface SwarmMonitorParams {
7
+ operation: "monitor";
8
+ taskId?: string;
9
+ }
10
+ export interface SwarmDelegateParams {
11
+ operation: "delegate";
12
+ taskId: string;
13
+ agentRole: "fe" | "be" | "mobile" | "devops" | "qa";
14
+ }
15
+ export interface SwarmAbortParams {
16
+ operation: "abort";
17
+ taskId: string;
18
+ reason: string;
19
+ }
20
+ export type SwarmParams = SwarmPlanParams | SwarmMonitorParams | SwarmDelegateParams | SwarmAbortParams;
21
+ export interface SwarmTask {
22
+ id: string;
23
+ title: string;
24
+ description: string;
25
+ dependencies?: string[];
26
+ agentRole?: "fe" | "be" | "mobile" | "devops" | "qa";
27
+ files?: string[];
28
+ status: "pending" | "in_progress" | "completed" | "failed" | "blocked";
29
+ }
30
+ export interface SwarmPlanResult {
31
+ planId: string;
32
+ tasks: SwarmTask[];
33
+ parallelism: number;
34
+ estimatedTime: string;
35
+ }
36
+ export interface SwarmMonitorResult {
37
+ planId: string;
38
+ totalTasks: number;
39
+ completed: number;
40
+ inProgress: number;
41
+ pending: number;
42
+ failed: number;
43
+ tasks: SwarmTask[];
44
+ }
45
+ export interface SwarmDelegateResult {
46
+ taskId: string;
47
+ delegatedTo: string;
48
+ status: string;
49
+ }
50
+ export interface SwarmAbortResult {
51
+ taskId: string;
52
+ aborted: boolean;
53
+ reason: string;
54
+ }
55
+ export type SwarmResult = SwarmPlanResult | SwarmMonitorResult | SwarmDelegateResult | SwarmAbortResult;
56
+ export declare function swarm(params: SwarmParams): SwarmResult;
57
+ //# sourceMappingURL=swarm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../src/tools/swarm.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAExG,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;CACxE;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAcxG,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAatD"}
@@ -0,0 +1,32 @@
1
+ export type AgentConfig = {
2
+ model?: string;
3
+ temperature?: number;
4
+ top_p?: number;
5
+ prompt?: string;
6
+ tools?: {
7
+ [key: string]: boolean;
8
+ };
9
+ disabled?: boolean;
10
+ description?: string;
11
+ mode?: "subagent" | "primary" | "all";
12
+ color?: string;
13
+ maxSteps?: number;
14
+ permission?: {
15
+ edit?: "ask" | "allow" | "deny";
16
+ bash?: ("ask" | "allow" | "deny") | {
17
+ [key: string]: "ask" | "allow" | "deny";
18
+ };
19
+ webfetch?: "ask" | "allow" | "deny";
20
+ doom_loop?: "ask" | "allow" | "deny";
21
+ external_directory?: "ask" | "allow" | "deny";
22
+ };
23
+ [key: string]: unknown;
24
+ };
25
+ export type CommandConfig = {
26
+ template: string;
27
+ description?: string;
28
+ agent?: string;
29
+ subtask?: boolean;
30
+ model?: string;
31
+ };
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,EACD,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC,GAC1B;YACE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;SACzC,CAAC;QACN,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;QACpC,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;QACrC,kBAAkB,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;KAC/C,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,114 @@
1
+ # Handoff Template
2
+
3
+ Use this template when saving state for session breaks.
4
+
5
+ **Output path:** `.opencode/memory/handoffs/YYYY-MM-DD-<phase>.md`
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ ---
11
+ date: YYYY-MM-DD
12
+ phase: spec'd | researched | planned | implementing | validating
13
+ branch: [git branch name]
14
+ bead_id: [optional]
15
+ ---
16
+
17
+ # Handoff: [Feature/Task Name]
18
+
19
+ ---
20
+
21
+ ## Status Summary
22
+
23
+ [2-5 sentences describing current state: what's done, what's in progress, any blockers]
24
+
25
+ ---
26
+
27
+ ## Artifacts
28
+
29
+ | Type | Path | Status |
30
+ |------|------|--------|
31
+ | Spec | `.opencode/memory/specs/YYYY-MM-DD-descriptor.md` | ✅ Complete |
32
+ | Plan | `.opencode/memory/plans/YYYY-MM-DD-feature.md` | ✅ Complete |
33
+ | Research | `.opencode/memory/research/YYYY-MM-DD-topic.md` | 📚 Reference |
34
+ | PRD | `.opencode/memory/prds/YYYY-MM-DD-feature.md` | ⏸️ In Review |
35
+
36
+ ---
37
+
38
+ ## Task Status
39
+
40
+ ### ✅ Completed
41
+ - [x] T-001: [Task title]
42
+ - [x] T-002: [Task title]
43
+
44
+ ### 🔄 In Progress
45
+ - [ ] T-003: [Task title]
46
+ - **Current state:** [What's been done]
47
+ - **Next step:** [What to do next]
48
+
49
+ ### ⏸️ Blocked
50
+ - [ ] T-004: [Task title]
51
+ - **Blocked by:** [Reason/dependency]
52
+ - **Resolution:** [What needs to happen]
53
+
54
+ ### 📋 Not Started
55
+ - [ ] T-005: [Task title]
56
+ - [ ] T-006: [Task title]
57
+
58
+ ---
59
+
60
+ ## Files Modified
61
+
62
+ | File | Status | Notes |
63
+ |------|--------|-------|
64
+ | `path/to/file.ts` | Modified | [Brief note] |
65
+ | `path/to/new.ts` | Created | [Brief note] |
66
+
67
+ ---
68
+
69
+ ## Git State
70
+
71
+ - **Branch:** `feature/xyz`
72
+ - **Last commit:** `abc1234` - [message]
73
+ - **Uncommitted changes:** Yes/No
74
+ - **Files staged:** [list if any]
75
+
76
+ ---
77
+
78
+ ## Known Issues
79
+
80
+ 1. [Issue 1 and any workaround]
81
+ 2. [Issue 2 and any workaround]
82
+
83
+ ---
84
+
85
+ ## Next Steps
86
+
87
+ 1. [ ] [Immediate next action]
88
+ 2. [ ] [Following action]
89
+ 3. [ ] [After that]
90
+
91
+ ---
92
+
93
+ ## Context for Resumption
94
+
95
+ [Any important context the next session needs to know that isn't captured above]
96
+
97
+ ### Decisions Made
98
+ - [Decision 1 and rationale]
99
+
100
+ ### Approaches Tried
101
+ - [Approach that didn't work and why]
102
+
103
+ ### Key Files to Review
104
+ - `path/to/important.ts` — [Why important]
105
+
106
+ ---
107
+
108
+ ## Resume Command
109
+
110
+ To resume, use `/resume` and it will:
111
+ 1. Load this handoff
112
+ 2. Check for drift
113
+ 3. Propose next action
114
+ ```
@@ -0,0 +1,135 @@
1
+ # Plan Template
2
+
3
+ Use this template when creating implementation plans.
4
+
5
+ **Output path:** `.opencode/memory/plans/YYYY-MM-DD-<feature>.md`
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # Implementation Plan: [Feature]
11
+
12
+ **Date:** YYYY-MM-DD
13
+ **Author:** [Name]
14
+ **Status:** Draft | Approved
15
+ **bead_id:** [ID]
16
+
17
+ ---
18
+
19
+ ## Overview
20
+
21
+ [Brief description of what will be built]
22
+
23
+ ## References
24
+
25
+ - **Spec:** `.opencode/memory/specs/YYYY-MM-DD-descriptor.md`
26
+ - **PRD:** `.opencode/memory/prds/YYYY-MM-DD-feature.md` (if applicable)
27
+ - **Research:** `.opencode/memory/research/YYYY-MM-DD-topic.md` (if applicable)
28
+
29
+ ---
30
+
31
+ ## Tasks
32
+
33
+ ### Task 1: [Title]
34
+
35
+ | Field | Value |
36
+ |-------|-------|
37
+ | **task_id** | T-001 |
38
+ | **type** | task \| bug \| feature \| chore |
39
+ | **assignee** | build \| fe \| be \| mobile \| devops |
40
+ | **effort** | S \| M \| L \| XL |
41
+ | **priority** | P0 \| P1 \| P2 |
42
+ | **status** | not_started \| in_progress \| blocked \| done |
43
+ | **dependencies** | [T-xxx] or none |
44
+
45
+ **Description:**
46
+ [What needs to be done]
47
+
48
+ **Input:**
49
+ - [Required artifacts/context]
50
+
51
+ **Output:**
52
+ - [Expected deliverables]
53
+ - [Files to create/modify]
54
+
55
+ **Acceptance Criteria:**
56
+ - [ ] AC-01: [Criteria]
57
+ - [ ] AC-02: [Criteria]
58
+
59
+ **Boundaries:**
60
+ - [What NOT to do]
61
+
62
+ ---
63
+
64
+ ### Task 2: [Title]
65
+
66
+ [Repeat structure]
67
+
68
+ ---
69
+
70
+ ## File Impact
71
+
72
+ **Files to CREATE:**
73
+ - `path/to/new-file.ts` — [Purpose]
74
+
75
+ **Files to MODIFY:**
76
+ - `path/to/existing.ts` — [Reason]
77
+
78
+ **Files to DELETE:**
79
+ - (none)
80
+
81
+ ---
82
+
83
+ ## Dependencies
84
+
85
+ ```mermaid
86
+ graph TD
87
+ T001[T-001: Title] --> T002[T-002: Title]
88
+ T002 --> T003[T-003: Title]
89
+ T001 --> T003
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Effort Summary
95
+
96
+ | Task | Effort | Priority |
97
+ |------|--------|----------|
98
+ | T-001 | S | P0 |
99
+ | T-002 | M | P0 |
100
+ | T-003 | S | P1 |
101
+
102
+ **Total Estimated Effort:** [X days/weeks]
103
+
104
+ ---
105
+
106
+ ## Risk Assessment
107
+
108
+ | Risk | Probability | Impact | Mitigation |
109
+ |------|-------------|--------|------------|
110
+ | [Risk 1] | L/M/H | L/M/H | [Mitigation] |
111
+
112
+ ---
113
+
114
+ ## Quick Mode Eligibility
115
+
116
+ Tasks eligible for Quick Mode (no full plan needed):
117
+ - [ ] T-001 (S, ≤3 files, no security/db/api)
118
+
119
+ ---
120
+
121
+ ## Rollout Plan
122
+
123
+ | Phase | Tasks | Milestone |
124
+ |-------|-------|-----------|
125
+ | Phase 1 | T-001, T-002 | [Milestone] |
126
+ | Phase 2 | T-003 | [Milestone] |
127
+
128
+ ---
129
+
130
+ ## Approval
131
+
132
+ - [ ] Plan reviewed
133
+ - [ ] User approved
134
+ - [ ] Ready for implementation
135
+ ```
@@ -0,0 +1,147 @@
1
+ # PRD Template
2
+
3
+ Use this template when creating Product Requirements Documents.
4
+
5
+ **Output path:** `.opencode/memory/prds/YYYY-MM-DD-<feature>.md`
6
+
7
+ ---
8
+
9
+ ```markdown
10
+ # PRD: [Feature/Product Name]
11
+
12
+ **Version:** 1.0
13
+ **Date:** YYYY-MM-DD
14
+ **Author:** [Name]
15
+ **Status:** Draft | In Review | Approved
16
+ **Bead-ID:** [ID]
17
+
18
+ ---
19
+
20
+ ## 1. Overview
21
+
22
+ ### 1.1 Problem Statement
23
+ [Clear description of the problem we're solving]
24
+
25
+ ### 1.2 Vision
26
+ [What the world looks like when this is solved]
27
+
28
+ ### 1.3 Goals
29
+ | Goal | Metric | Target |
30
+ |------|--------|--------|
31
+ | [Goal 1] | [Metric] | [Target] |
32
+
33
+ ### 1.4 Non-Goals
34
+ - [What we're explicitly NOT doing]
35
+
36
+ ---
37
+
38
+ ## 2. Users & Personas
39
+
40
+ ### 2.1 Target Users
41
+ | Persona | Description | Pain Points |
42
+ |---------|-------------|-------------|
43
+ | [Persona 1] | [Description] | [Pain points] |
44
+
45
+ ### 2.2 User Stories
46
+ | ID | As a... | I want to... | So that... | Priority |
47
+ |----|---------|--------------|------------|----------|
48
+ | US-01 | [user] | [action] | [benefit] | P0 |
49
+
50
+ ---
51
+
52
+ ## 3. Requirements
53
+
54
+ ### 3.1 Functional Requirements
55
+
56
+ #### P0 — Must Have
57
+ | ID | Requirement | Acceptance Criteria |
58
+ |----|-------------|---------------------|
59
+ | FR-01 | [Requirement] | [Criteria] |
60
+
61
+ #### P1 — Should Have
62
+ | ID | Requirement | Acceptance Criteria |
63
+ |----|-------------|---------------------|
64
+
65
+ #### P2 — Nice to Have
66
+ | ID | Requirement | Acceptance Criteria |
67
+ |----|-------------|---------------------|
68
+
69
+ ### 3.2 Non-Functional Requirements
70
+ | Category | Requirement | Target |
71
+ |----------|-------------|--------|
72
+ | Performance | [Requirement] | [Target] |
73
+ | Security | [Requirement] | [Target] |
74
+ | Scalability | [Requirement] | [Target] |
75
+
76
+ ---
77
+
78
+ ## 4. Design
79
+
80
+ ### 4.1 User Interface
81
+ [Wireframes, mockups, or descriptions]
82
+
83
+ ### 4.2 Information Architecture
84
+ [Structure diagram]
85
+
86
+ ### 4.3 API Design (if applicable)
87
+ | Endpoint | Method | Description |
88
+ |----------|--------|-------------|
89
+
90
+ ---
91
+
92
+ ## 5. Technical Considerations
93
+
94
+ ### 5.1 Architecture
95
+ [High-level technical approach]
96
+
97
+ ### 5.2 Dependencies
98
+ | Dependency | Type | Risk |
99
+ |------------|------|------|
100
+
101
+ ### 5.3 Security Considerations
102
+ - [Security concern and mitigation]
103
+
104
+ ---
105
+
106
+ ## 6. Timeline & Milestones
107
+
108
+ | Phase | Scope | Duration | Date |
109
+ |-------|-------|----------|------|
110
+ | Phase 1 | [MVP] | [X weeks] | [Date] |
111
+
112
+ **Milestones:**
113
+ - [ ] PRD Approved
114
+ - [ ] Design Complete
115
+ - [ ] Development Complete
116
+ - [ ] Launch
117
+
118
+ ---
119
+
120
+ ## 7. Success Metrics
121
+
122
+ | Metric | Current | Target | Measurement |
123
+ |--------|---------|--------|-------------|
124
+ | [Metric 1] | [Baseline] | [Goal] | [How] |
125
+
126
+ ---
127
+
128
+ ## 8. Risks & Mitigations
129
+
130
+ | Risk | Probability | Impact | Mitigation |
131
+ |------|-------------|--------|------------|
132
+ | [Risk 1] | L/M/H | L/M/H | [Mitigation] |
133
+
134
+ ---
135
+
136
+ ## 9. Open Questions
137
+
138
+ - [ ] [Question 1]
139
+
140
+ ---
141
+
142
+ ## Changelog
143
+
144
+ | Version | Date | Author | Changes |
145
+ |---------|------|--------|---------|
146
+ | 1.0 | YYYY-MM-DD | [Name] | Initial draft |
147
+ ```