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.
- package/AGENTS.md +46 -0
- package/README.md +282 -0
- package/command/commit.md +137 -0
- package/command/create.md +150 -0
- package/command/debug.md +185 -0
- package/command/design.md +82 -0
- package/command/handoff.md +95 -0
- package/command/import-plan.md +175 -0
- package/command/init.md +112 -0
- package/command/issue.md +110 -0
- package/command/plan.md +205 -0
- package/command/pr.md +174 -0
- package/command/research.md +103 -0
- package/command/resume.md +80 -0
- package/command/review-codebase.md +228 -0
- package/command/review.md +135 -0
- package/command/ship.md +109 -0
- package/command/start.md +77 -0
- package/command/status.md +123 -0
- package/command/verify.md +79 -0
- package/command/vision.md +142 -0
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +103 -0
- package/dist/clikit.schema.json +423 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/config.d.ts +118 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/hooks/auto-format.d.ts +30 -0
- package/dist/hooks/auto-format.d.ts.map +1 -0
- package/dist/hooks/comment-checker.d.ts +17 -0
- package/dist/hooks/comment-checker.d.ts.map +1 -0
- package/dist/hooks/compaction.d.ts +60 -0
- package/dist/hooks/compaction.d.ts.map +1 -0
- package/dist/hooks/empty-message-sanitizer.d.ts +9 -0
- package/dist/hooks/empty-message-sanitizer.d.ts.map +1 -0
- package/dist/hooks/env-context.d.ts +43 -0
- package/dist/hooks/env-context.d.ts.map +1 -0
- package/dist/hooks/git-guard.d.ts +14 -0
- package/dist/hooks/git-guard.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +35 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/ritual-enforcer.d.ts +29 -0
- package/dist/hooks/ritual-enforcer.d.ts.map +1 -0
- package/dist/hooks/security-check.d.ts +20 -0
- package/dist/hooks/security-check.d.ts.map +1 -0
- package/dist/hooks/session-notification.d.ts +23 -0
- package/dist/hooks/session-notification.d.ts.map +1 -0
- package/dist/hooks/subagent-question-blocker.d.ts +11 -0
- package/dist/hooks/subagent-question-blocker.d.ts.map +1 -0
- package/dist/hooks/swarm-enforcer.d.ts +31 -0
- package/dist/hooks/swarm-enforcer.d.ts.map +1 -0
- package/dist/hooks/todo-enforcer.d.ts +19 -0
- package/dist/hooks/todo-enforcer.d.ts.map +1 -0
- package/dist/hooks/truncator.d.ts +28 -0
- package/dist/hooks/truncator.d.ts.map +1 -0
- package/dist/hooks/typecheck-gate.d.ts +31 -0
- package/dist/hooks/typecheck-gate.d.ts.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5785 -0
- package/dist/skills/index.d.ts +9 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/tools/beads-memory-sync.d.ts +17 -0
- package/dist/tools/beads-memory-sync.d.ts.map +1 -0
- package/dist/tools/context-summary.d.ts +21 -0
- package/dist/tools/context-summary.d.ts.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/memory.d.ts +56 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/observation.d.ts +28 -0
- package/dist/tools/observation.d.ts.map +1 -0
- package/dist/tools/quick-research.d.ts +16 -0
- package/dist/tools/quick-research.d.ts.map +1 -0
- package/dist/tools/swarm.d.ts +57 -0
- package/dist/tools/swarm.d.ts.map +1 -0
- package/dist/types.d.ts +32 -0
- package/dist/types.d.ts.map +1 -0
- package/memory/_templates/handoff.md +114 -0
- package/memory/_templates/plan.md +135 -0
- package/memory/_templates/prd.md +147 -0
- package/memory/_templates/research.md +108 -0
- package/memory/_templates/review.md +117 -0
- package/memory/_templates/spec.md +116 -0
- package/memory/beads/.gitkeep +0 -0
- package/memory/handoffs/.gitkeep +0 -0
- package/memory/plans/.gitkeep +0 -0
- package/memory/prds/.gitkeep +0 -0
- package/memory/research/.gitkeep +0 -0
- package/memory/reviews/.gitkeep +0 -0
- package/memory/specs/.gitkeep +0 -0
- package/package.json +64 -0
- package/skill/accessibility-audit/SKILL.md +115 -0
- package/skill/beads/SKILL.md +56 -0
- package/skill/beads-bridge/SKILL.md +45 -0
- package/skill/brainstorming/SKILL.md +41 -0
- package/skill/chrome-devtools/SKILL.md +36 -0
- package/skill/cloudflare/SKILL.md +96 -0
- package/skill/condition-based-waiting/SKILL.md +92 -0
- package/skill/deep-research/SKILL.md +130 -0
- package/skill/defense-in-depth/SKILL.md +89 -0
- package/skill/design-system-audit/SKILL.md +136 -0
- package/skill/development-lifecycle/SKILL.md +58 -0
- package/skill/dispatching-parallel-agents/SKILL.md +94 -0
- package/skill/executing-plans/SKILL.md +54 -0
- package/skill/figma/SKILL.md +34 -0
- package/skill/finishing-a-development-branch/SKILL.md +127 -0
- package/skill/frontend-aesthetics/SKILL.md +63 -0
- package/skill/gemini-large-context/SKILL.md +80 -0
- package/skill/mockup-to-code/SKILL.md +98 -0
- package/skill/mqdh/SKILL.md +54 -0
- package/skill/notebooklm/SKILL.md +71 -0
- package/skill/playwright/SKILL.md +37 -0
- package/skill/playwriter/SKILL.md +56 -0
- package/skill/polar/SKILL.md +39 -0
- package/skill/receiving-code-review/SKILL.md +47 -0
- package/skill/requesting-code-review/SKILL.md +47 -0
- package/skill/resend/SKILL.md +85 -0
- package/skill/ritual-workflow/SKILL.md +101 -0
- package/skill/root-cause-tracing/SKILL.md +73 -0
- package/skill/session-management/SKILL.md +53 -0
- package/skill/sharing-skills/SKILL.md +50 -0
- package/skill/source-code-research/SKILL.md +138 -0
- package/skill/subagent-driven-development/SKILL.md +69 -0
- package/skill/supabase/SKILL.md +80 -0
- package/skill/supabase-postgres-best-practices/SKILL.md +168 -0
- package/skill/swarm-coordination/SKILL.md +54 -0
- package/skill/systematic-debugging/SKILL.md +58 -0
- package/skill/test-driven-development/SKILL.md +53 -0
- package/skill/testing-anti-patterns/SKILL.md +100 -0
- package/skill/testing-skills-with-subagents/SKILL.md +102 -0
- package/skill/ui-ux-research/SKILL.md +93 -0
- package/skill/using-git-worktrees/SKILL.md +129 -0
- package/skill/v0/SKILL.md +67 -0
- package/skill/v1-run/SKILL.md +85 -0
- package/skill/vercel-react-best-practices/SKILL.md +174 -0
- package/skill/verification-before-completion/SKILL.md +55 -0
- package/skill/visual-analysis/SKILL.md +113 -0
- package/skill/writing-plans/SKILL.md +55 -0
- package/skill/writing-skills/SKILL.md +68 -0
- package/src/agents/AGENTS.md +46 -0
- package/src/agents/build.md +170 -0
- package/src/agents/explore.md +113 -0
- package/src/agents/general.md +92 -0
- package/src/agents/index.ts +64 -0
- package/src/agents/librarian.md +116 -0
- package/src/agents/looker.md +107 -0
- package/src/agents/oracle.md +138 -0
- package/src/agents/plan.md +78 -0
- package/src/agents/review.md +98 -0
- package/src/agents/scout.md +84 -0
- 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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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
|
+
```
|