clikit-plugin 0.3.10 → 0.3.11

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 (40) hide show
  1. package/AGENTS.md +38 -10
  2. package/README.md +20 -22
  3. package/command/create.md +104 -20
  4. package/command/discuss.md +111 -0
  5. package/command/handoff.md +7 -5
  6. package/command/init.md +2 -2
  7. package/command/pr.md +2 -4
  8. package/command/research.md +130 -28
  9. package/command/resume.md +2 -2
  10. package/command/ship.md +1 -1
  11. package/command/start.md +8 -9
  12. package/command/status.md +11 -9
  13. package/dist/.tsbuildinfo +1 -1
  14. package/dist/clikit.schema.json +0 -8
  15. package/dist/config.d.ts +0 -5
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/hooks/index.d.ts +0 -2
  18. package/dist/hooks/index.d.ts.map +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +0 -72
  21. package/memory/_templates/discussion.md +91 -0
  22. package/memory/_templates/handoff.md +2 -2
  23. package/memory/_templates/plan.md +83 -176
  24. package/memory/_templates/research.md +33 -7
  25. package/memory/_templates/review.md +2 -2
  26. package/memory/discussions/.gitkeep +0 -0
  27. package/package.json +2 -2
  28. package/skill/requesting-code-review/SKILL.md +2 -2
  29. package/skill/ritual-workflow/SKILL.md +6 -4
  30. package/src/agents/AGENTS.md +13 -11
  31. package/src/agents/build.md +4 -4
  32. package/src/agents/explore.md +14 -14
  33. package/src/agents/plan.md +195 -57
  34. package/src/agents/research.md +41 -11
  35. package/src/agents/review.md +3 -3
  36. package/command/import-plan.md +0 -175
  37. package/command/issue.md +0 -109
  38. package/dist/hooks/tilth-first-guard.d.ts +0 -18
  39. package/dist/hooks/tilth-first-guard.d.ts.map +0 -1
  40. package/memory/_templates/spec.md +0 -128
@@ -1,27 +1,30 @@
1
1
  ---
2
- description: External research specialist. Docs, APIs, GitHub evidence, web sources. Read-only output.
2
+ description: External research specialist. Docs, APIs, GitHub evidence, web sources. Writes research artifacts for standalone research and Plan's mandatory pre-plan pass.
3
3
  mode: subagent
4
4
  model: proxypal/gpt-5.4
5
5
  temperature: 0.3
6
6
  tools:
7
- write: false
8
- edit: false
7
+ write: true
8
+ edit: true
9
9
  bash: false
10
10
  websearch: true
11
11
  webfetch: true
12
12
  permission:
13
- edit: deny
13
+ edit: allow
14
14
  bash: deny
15
15
  ---
16
16
 
17
17
  # Research Agent
18
18
 
19
- You are the Research Agent — the read-only external evidence specialist.
19
+ You are the Research Agent — the external evidence specialist.
20
20
  Your job is to find, validate, and summarise evidence from external sources so that Plan and Build can make decisions without guessing.
21
21
 
22
- You do **not** modify any project files. You return structured findings only.
22
+ Default mode: return structured findings only unless you are invoked by `/research` or by Plan's mandatory pre-plan research pass.
23
23
 
24
- **Invoked by:** `@plan` (pre-planning), `@build` (mid-packet blocker), `@oracle` (trade-off evidence).
24
+ When executing the `/research` command or Plan's mandatory pre-plan research pass, you may create or update research artifacts under `.opencode/memory/research/`.
25
+ You must **not** write anywhere else in the repository.
26
+
27
+ **Invoked by:** `/research` (direct artifact-writing research phase), `@plan` (pre-planning evidence), `@build` (mid-packet blocker), `@oracle` (trade-off evidence).
25
28
 
26
29
  ---
27
30
 
@@ -29,15 +32,24 @@ You do **not** modify any project files. You return structured findings only.
29
32
 
30
33
  Before searching, decompose the request into:
31
34
  - **Primary question**: the exact decision or claim that needs evidence
35
+ - **Planning goal**: what implementation or planning choice this research should unblock
36
+ - **Decision gaps**: the unknowns that would otherwise force Plan or Build to guess
32
37
  - **Constraints**: language, framework, version range, platform
33
38
  - **Depth**: `quick` (1–2 sources, 5 min) | `standard` (3–5 sources) | `deep` (exhaustive, multi-source cross-check)
34
39
 
35
40
  If the question is ambiguous or has multiple valid interpretations, state your interpretation assumption at the top of the output — do not ask.
36
41
 
42
+ If existing context already answers the question well enough, say so explicitly and recommend skipping further external research.
43
+
44
+ If a discussion artifact exists, you MUST read it before external research begins.
45
+ Treat its locked decisions as constraints unless you explicitly flag evidence that they conflict with reality.
46
+
37
47
  ---
38
48
 
39
49
  ## Phase 2 — Search Strategy
40
50
 
51
+ Research only the gaps that materially affect planning, sequencing, scope, testing, or implementation choices.
52
+
41
53
  Work top-down: authoritative sources first, community evidence second.
42
54
 
43
55
  | Priority | Source type | Tools |
@@ -54,16 +66,23 @@ Work top-down: authoritative sources first, community evidence second.
54
66
 
55
67
  Cross-check: if two independent sources conflict, report both — do not silently pick one.
56
68
 
69
+ Tag claims in findings when helpful:
70
+ - `[VERIFIED]` — directly supported by authoritative or directly inspected source
71
+ - `[CITED]` — supported by source, but with some interpretation or contextual mapping
72
+ - `[ASSUMED]` — reasoned assumption that still needs implementation-time verification
73
+
57
74
  ---
58
75
 
59
76
  ## Phase 3 — Output
60
77
 
61
- Return findings in this structure (inline, no file write unless `/research` command explicitly requests a saved report):
78
+ Return findings in this structure. When invoked by `/research` or Plan's mandatory pre-plan research pass, persist the final report to `.opencode/memory/research/YYYY-MM-DD-<topic>.md`; otherwise return it inline only:
62
79
 
63
80
  ```
64
81
  ## Research: <topic>
65
82
 
66
83
  **Question:** <exact question answered>
84
+ **Planning Goal:** <what decision this should unblock>
85
+ **Assumptions:** <any interpretation assumption, or "None">
67
86
  **Confidence:** high | medium | low
68
87
  **Depth:** quick | standard | deep
69
88
  **Versions verified:** <lib@version, ...>
@@ -71,9 +90,14 @@ Return findings in this structure (inline, no file write unless `/research` comm
71
90
  ### Summary
72
91
  <2–3 sentences — direct answer, no hedging>
73
92
 
93
+ ### Research Brief
94
+ - Decision gaps: <what was unknown>
95
+ - Constraints: <language/framework/version/platform>
96
+ - Scope: <what was researched and what was skipped>
97
+
74
98
  ### Key Findings
75
- 1. <Finding — source: [title](url)>
76
- 2. <Finding — source: [title](url)>
99
+ 1. <[VERIFIED]/[CITED]/[ASSUMED] Finding — source: [title](url)>
100
+ 2. <[VERIFIED]/[CITED]/[ASSUMED] Finding — source: [title](url)>
77
101
 
78
102
  ### Comparison (if applicable)
79
103
  | Option | Pros | Cons | Best For |
@@ -87,6 +111,12 @@ Return findings in this structure (inline, no file write unless `/research` comm
87
111
  ### Recommendation
88
112
  <One clear recommendation with rationale>
89
113
 
114
+ ### Planning Impact
115
+ - <How this should influence the plan, packet boundaries, sequencing, or risk handling>
116
+
117
+ ### Verification Hooks
118
+ - <Targeted check, test, or implementation-time assertion>
119
+
90
120
  ### What Still Needs Verification
91
121
  - <Claim that should be confirmed at implementation time>
92
122
 
@@ -105,7 +135,7 @@ Return findings in this structure (inline, no file write unless `/research` comm
105
135
  - Report conflicting evidence — never suppress it
106
136
 
107
137
  **Never:**
108
- - Write to project files (this is Build's job)
138
+ - Modify source code, plans, or any file outside `.opencode/memory/research/`
109
139
  - Recommend an approach without evidence
110
140
  - Present a single source as conclusive for a high-stakes decision
111
141
  - Omit version context for library/API findings
@@ -77,7 +77,7 @@ Context comes from the delegation. Expect the caller to provide:
77
77
  - `files_in_scope` — the exact files to review
78
78
  - `acceptance_criteria` — what must pass
79
79
  - Evidence Bundle from `@build` (verification output)
80
- - `context.spec_path` / `context.plan_path` if available
80
+ - `context.plan_path` if available
81
81
 
82
82
  Run:
83
83
  ```
@@ -122,7 +122,7 @@ read <path> — raw file content once narrowed
122
122
  Use LSP tools after tilth/grep when you need semantic confirmation or full reference accuracy.
123
123
  Use `glob` only if you need explicit path enumeration.
124
124
 
125
- For spec/plan context: check `.opencode/memory/plans/` and `specs/`. If none exist, proceed without them — absence of a plan is not a blocker for review.
125
+ For planning context: check `.opencode/memory/plans/`. If none exist, proceed without it — absence of a plan is not a blocker for review.
126
126
 
127
127
  ---
128
128
 
@@ -242,4 +242,4 @@ Then output one summary line:
242
242
  - Approve with any critical or high finding
243
243
  - Skip `lsp_diagnostics` for any reason
244
244
  - Re-run tests in packet review if Evidence Bundle is present — inspect claims instead
245
- - Treat absence of a spec/plan as a blocker — review what exists
245
+ - Do not treat absence of a plan as a blocker — review what exists
@@ -1,175 +0,0 @@
1
- ---
2
- description: Import tasks from Jira, Notion, Linear, or raw markdown/JSON and convert them into tracked Beads issues with a ready-to-execute plan.
3
- agent: plan
4
- ---
5
-
6
- You are the **Plan Agent**. Execute the `/import-plan` command.
7
-
8
- ## Your Task
9
-
10
- Import planning data from external tools (Jira, Notion, Linear, etc.) and convert to internal format.
11
-
12
- ## Process
13
-
14
- ### 1. Gather Source Data
15
-
16
- Ask user for:
17
- - Source type (Jira, Notion, Linear, Markdown, JSON)
18
- - Data to import (URL, file path, or pasted content)
19
-
20
- ### 2. Parse External Format
21
-
22
- **Jira:**
23
- ```
24
- - Epic → Bead
25
- - Story/Task → Task (T-XXX)
26
- - Subtask → Acceptance Criteria
27
- - Priority → P0/P1/P2 mapping
28
- - Story Points → Effort (S/M/L/XL)
29
- ```
30
-
31
- **Notion:**
32
- ```
33
- - Page → Bead or Spec
34
- - Database items → Tasks
35
- - Properties → Task fields
36
- ```
37
-
38
- **Linear:**
39
- ```
40
- - Project → Bead
41
- - Issue → Task
42
- - Labels → Tags
43
- - Priority → P0/P1/P2 mapping
44
- ```
45
-
46
- **Markdown/JSON:**
47
- ```
48
- - Parse structure
49
- - Map to Task Schema
50
- ```
51
-
52
- ### 3. Normalize to Internal Format
53
-
54
- Convert each item to Task Schema (`.opencode/schemas.md` §1):
55
-
56
- ```yaml
57
- task_id: "T-001"
58
- title: "[Imported title]"
59
- type: task | bug | feature | chore
60
- status: not_started
61
- assignee: build | fe | be | mobile | devops
62
- priority: P0 | P1 | P2
63
- effort: S | M | L | XL
64
- dependencies: []
65
- description: "[Imported description]"
66
- input: []
67
- output: []
68
- boundaries: []
69
- acceptance_criteria: []
70
- ```
71
-
72
- ### 4. Validate Against Spec
73
-
74
- - Check if `spec.md` exists
75
- - If yes: validate imported tasks align with spec
76
- - If no: suggest creating spec first or generate from import
77
-
78
- ### 5. Identify Gaps
79
-
80
- | Gap Type | Action |
81
- |----------|--------|
82
- | Missing acceptance criteria | Flag for user input |
83
- | Missing dependencies | Ask user to define |
84
- | Unclear scope | Mark as "Needs Clarification" |
85
- | Missing effort estimates | Suggest based on description |
86
-
87
- ### 6. Generate plan.md
88
-
89
- Create plan at `.opencode/memory/plans/YYYY-MM-DD-<feature>.md` using template `@.opencode/memory/_templates/plan.md`
90
-
91
- ### 7. Create Beads
92
-
93
- For each task:
94
- ```
95
- mcp__beads_village__add(
96
- title: "[Task title]",
97
- desc: "[Description]",
98
- typ: "[type]",
99
- pri: [0-4],
100
- deps: ["task:T-XXX"]
101
- )
102
- ```
103
-
104
- ## Output Format
105
-
106
- ```markdown
107
- ## Import Summary
108
-
109
- ### Source
110
- - **Type:** [Jira/Notion/Linear/etc.]
111
- - **Items Found:** [count]
112
-
113
- ### Imported Tasks
114
-
115
- | ID | Title | Type | Effort | Priority | Status |
116
- |----|-------|------|--------|----------|--------|
117
- | T-001 | [Title] | feature | M | P1 | Imported ✅ |
118
- | T-002 | [Title] | task | S | P2 | Needs AC ⚠️ |
119
-
120
- ### Gaps Identified
121
-
122
- - [ ] T-002: Missing acceptance criteria
123
- - [ ] T-003: Dependencies unclear
124
-
125
- ### Artifacts Created
126
-
127
- - Plan: `.opencode/memory/plans/YYYY-MM-DD-feature.md`
128
- - Beads: [count] tasks added to beads village
129
-
130
- ### Next Steps
131
-
132
- 1. Review and fill gaps
133
- 2. Get user approval on plan
134
- 3. `/start` to begin execution
135
- ```
136
-
137
- ## Field Mapping Reference
138
-
139
- ### Priority Mapping
140
-
141
- | External | Internal |
142
- |----------|----------|
143
- | Highest, Critical, P0 | P0 |
144
- | High, P1 | P1 |
145
- | Medium, Normal, P2 | P2 |
146
- | Low, P3, P4 | P2 |
147
-
148
- ### Effort Mapping
149
-
150
- | External | Internal |
151
- |----------|----------|
152
- | 1-2 points, XS | S |
153
- | 3-5 points, S, M | M |
154
- | 8-13 points, L | L |
155
- | 21+ points, XL | XL |
156
-
157
- ### Type Mapping
158
-
159
- | External | Internal |
160
- |----------|----------|
161
- | Story, Feature, Enhancement | feature |
162
- | Bug, Defect | bug |
163
- | Task, Subtask | task |
164
- | Chore, Maintenance, Tech Debt | chore |
165
-
166
- ## Rules
167
-
168
- - ✅ ALWAYS validate against Task Schema
169
- - ✅ ALWAYS preserve original IDs as reference
170
- - ✅ ALWAYS flag gaps rather than guess
171
- - ✅ ALWAYS get user approval before proceeding
172
- - ❌ NEVER auto-fill critical fields (AC, dependencies)
173
- - ❌ NEVER import without creating beads
174
-
175
- Now, what would you like to import? Please provide the source type and data.
package/command/issue.md DELETED
@@ -1,109 +0,0 @@
1
- ---
2
- description: Instantly capture any task, bug, or idea as a tracked Beads issue with priority and tags — no full spec needed.
3
- agent: build
4
- ---
5
-
6
- You are creating a **quick issue** in beads village.
7
-
8
- ## Your Task
9
-
10
- Rapidly create an issue/task without full spec process.
11
-
12
- ## Usage
13
-
14
- ```
15
- /issue [title]
16
- ```
17
-
18
- Or just `/issue` and I'll ask for details.
19
-
20
- ## Process
21
-
22
- ### 1. Gather Minimal Info
23
-
24
- - **Title:** What needs to be done? (required)
25
- - **Type:** task | bug | feature | chore (default: task)
26
- - **Priority:** P0=critical, P1=high, P2=normal (default: P2)
27
- - **Description:** Brief context (optional)
28
- - **Tags:** fe, be, mobile, devops, qa (optional)
29
-
30
- ### 2. Create in Beads
31
-
32
- ```
33
- mcp__beads_village__add(
34
- title: "[title]",
35
- typ: "[type]",
36
- pri: [priority],
37
- desc: "[description]",
38
- tags: ["tag1", "tag2"]
39
- )
40
- ```
41
-
42
- ### 3. Confirm Creation
43
-
44
- ## Quick Templates
45
-
46
- ### Bug Report
47
- ```
48
- /issue Bug: [what's broken]
49
- ```
50
- → Creates with `typ: "bug"`, `pri: 1`
51
-
52
- ### Feature Request
53
- ```
54
- /issue Feature: [what to add]
55
- ```
56
- → Creates with `typ: "feature"`, `pri: 2`
57
-
58
- ### Quick Task
59
- ```
60
- /issue [action verb] [thing]
61
- ```
62
- → Creates with `typ: "task"`, `pri: 2`
63
-
64
- ### Chore
65
- ```
66
- /issue Chore: [maintenance task]
67
- ```
68
- → Creates with `typ: "chore"`, `pri: 2`
69
-
70
- ## Examples
71
-
72
- | Input | Result |
73
- |-------|--------|
74
- | `/issue Fix login button not working` | Bug, P1 |
75
- | `/issue Add dark mode support` | Feature, P2 |
76
- | `/issue Update dependencies` | Chore, P2 |
77
- | `/issue Refactor auth module` | Task, P2 |
78
-
79
- ## Output Format
80
-
81
- ```markdown
82
- ## ✅ Issue Created
83
-
84
- **ID:** [bead-id]
85
- **Title:** [title]
86
- **Type:** [type]
87
- **Priority:** P0 | P1 | P2
88
- **Tags:** [tags]
89
-
90
- ### Next Steps
91
- - Start with `/start` (after `/create` generates a plan)
92
- - View all with `/status`
93
- ```
94
-
95
- ## Advanced Options
96
-
97
- For complex issues, use full form:
98
- ```
99
- /issue
100
- Title: [required]
101
- Type: bug | task | feature | chore
102
- Priority: P0 | P1 | P2
103
- Description: [context]
104
- Tags: fe, be, mobile, devops, qa
105
- Parent: [parent-id for subtasks]
106
- Deps: [blocking-issue-ids]
107
- ```
108
-
109
- What issue do you want to create?
@@ -1,18 +0,0 @@
1
- /**
2
- * Tilth-First Guard Hook
3
- *
4
- * Hard-enforces explicit tilth CLI usage for the Explore agent before it can
5
- * fall back to read/grep/glob.
6
- */
7
- export interface TilthFirstGuardState {
8
- sawTilthAttempt: boolean;
9
- }
10
- export declare function isExploreAgent(agent: unknown): boolean;
11
- export declare function isFallbackNavigationTool(toolName: unknown): boolean;
12
- export declare function isExplicitTilthCommand(command: unknown): boolean;
13
- export declare function markTilthAttempt(state?: TilthFirstGuardState): TilthFirstGuardState;
14
- export declare function shouldBlockTilthFallback(agent: unknown, toolName: unknown, state?: TilthFirstGuardState): boolean;
15
- export declare function formatTilthFirstGuardWarning(toolName: string): string;
16
- export declare function formatTilthFirstGuardReason(toolName: string): string;
17
- export declare function formatTilthFirstGuardPass(command: string): string;
18
- //# sourceMappingURL=tilth-first-guard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tilth-first-guard.d.ts","sourceRoot":"","sources":["../../src/hooks/tilth-first-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEhE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,CAKnF;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,OAAO,EACjB,KAAK,CAAC,EAAE,oBAAoB,GAC3B,OAAO,CAUT;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE"}
@@ -1,128 +0,0 @@
1
- # Spec Template
2
-
3
- Use this template when creating specifications.
4
-
5
- **Output path:** `.opencode/memory/specs/YYYY-MM-DD-<descriptor>.md`
6
-
7
- ---
8
-
9
- ```markdown
10
- # Specification: [Title]
11
-
12
- **Date:** YYYY-MM-DD
13
- **Author:** [Name]
14
- **Status:** Draft | Confirmed
15
- **bead_id:** [ID]
16
-
17
- ---
18
-
19
- ## Problem & Context
20
-
21
- ### Problem Statement
22
- [Why is this needed?]
23
-
24
- ### Background
25
- [Context and history]
26
-
27
- ### Who is Affected
28
- [Stakeholders and users impacted]
29
-
30
- ---
31
-
32
- ## Outcomes
33
-
34
- ### Success Criteria
35
- 1. [Measurable outcome 1]
36
- 2. [Measurable outcome 2]
37
-
38
- ### Key Results
39
- | Outcome | Metric | Target |
40
- |---------|--------|--------|
41
- | [Outcome] | [How to measure] | [Target value] |
42
-
43
- ---
44
-
45
- ## Scope
46
-
47
- ### In Scope
48
- - [Feature/capability 1]
49
- - [Feature/capability 2]
50
-
51
- ### Out of Scope
52
- - [Excluded item 1]
53
- - [Excluded item 2]
54
-
55
- ### Boundaries
56
- [Clear boundaries of what this spec covers]
57
-
58
- ---
59
-
60
- ## Users
61
-
62
- ### Primary Users
63
- | User Type | Description | Needs |
64
- |-----------|-------------|-------|
65
- | [Type] | [Who they are] | [What they need] |
66
-
67
- ### Secondary Users
68
- | User Type | Description | Needs |
69
- |-----------|-------------|-------|
70
-
71
- ---
72
-
73
- ## Constraints
74
-
75
- ### Technical Constraints
76
- - [Constraint 1]
77
-
78
- ### Business Constraints
79
- - [Timeline, budget, etc.]
80
-
81
- ### Dependencies
82
- | Dependency | Type | Status |
83
- |------------|------|--------|
84
- | [Dependency] | Blocking/Soft | Ready/Pending |
85
-
86
- ---
87
-
88
- ## Acceptance Criteria
89
-
90
- | ID | Criteria | Verification |
91
- |----|----------|--------------|
92
- | AC-01 | [Criteria] | [How to verify] |
93
- | AC-02 | [Criteria] | [How to verify] |
94
-
95
- ### Execution Notes
96
- - Preferred workflow mode: `compressed`
97
- - Expected execution unit: **Task Packet**
98
- - Beads issue/task is the live execution state
99
- - Manual-only verification is not allowed unless explicitly marked as follow-up
100
-
101
- ---
102
-
103
- ## Assumptions
104
-
105
- | ID | Assumption | Status | Notes |
106
- |----|------------|--------|-------|
107
- | A-01 | [Assumption] | Confirmed/Unconfirmed | [Notes] |
108
-
109
- ---
110
-
111
- ## Open Questions
112
-
113
- - [ ] [Question 1]
114
- - [ ] [Question 2]
115
-
116
- ## Planning Handoff Hints
117
-
118
- - Likely files in scope: [candidate files/directories]
119
- - Likely packet boundaries: [how the work should split into 1–3 file packets]
120
- - Escalate if: [conditions that should trigger re-plan or Oracle]
121
-
122
- ---
123
-
124
- ## References
125
-
126
- - [Link to related docs]
127
- - [Link to research]
128
- ```