solveos-cli 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/LICENSE +21 -0
- package/README.md +194 -0
- package/agents/solveos-build-validator.md +183 -0
- package/agents/solveos-debugger.md +226 -0
- package/agents/solveos-executor.md +187 -0
- package/agents/solveos-plan-validator.md +200 -0
- package/agents/solveos-planner.md +190 -0
- package/agents/solveos-researcher.md +152 -0
- package/agents/solveos-reviewer.md +263 -0
- package/commands/solveos/archive.md +106 -0
- package/commands/solveos/build.md +170 -0
- package/commands/solveos/fast.md +85 -0
- package/commands/solveos/new-cycle.md +165 -0
- package/commands/solveos/new.md +142 -0
- package/commands/solveos/next.md +86 -0
- package/commands/solveos/plan.md +139 -0
- package/commands/solveos/quick.md +109 -0
- package/commands/solveos/research.md +117 -0
- package/commands/solveos/review.md +198 -0
- package/commands/solveos/ship.md +129 -0
- package/commands/solveos/status.md +78 -0
- package/commands/solveos/validate-build.md +155 -0
- package/commands/solveos/validate-plan.md +115 -0
- package/dist/bin/install.d.ts +11 -0
- package/dist/bin/install.d.ts.map +1 -0
- package/dist/bin/install.js +158 -0
- package/dist/bin/install.js.map +1 -0
- package/dist/hooks/brief-anchor.d.ts +68 -0
- package/dist/hooks/brief-anchor.d.ts.map +1 -0
- package/dist/hooks/brief-anchor.js +236 -0
- package/dist/hooks/brief-anchor.js.map +1 -0
- package/dist/hooks/context-monitor.d.ts +70 -0
- package/dist/hooks/context-monitor.d.ts.map +1 -0
- package/dist/hooks/context-monitor.js +166 -0
- package/dist/hooks/context-monitor.js.map +1 -0
- package/dist/lib/artifacts.d.ts +63 -0
- package/dist/lib/artifacts.d.ts.map +1 -0
- package/dist/lib/artifacts.js +382 -0
- package/dist/lib/artifacts.js.map +1 -0
- package/dist/lib/config.d.ts +10 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +29 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/runtime-adapters/claude-code.d.ts +18 -0
- package/dist/lib/runtime-adapters/claude-code.d.ts.map +1 -0
- package/dist/lib/runtime-adapters/claude-code.js +125 -0
- package/dist/lib/runtime-adapters/claude-code.js.map +1 -0
- package/dist/lib/runtime-adapters/cursor.d.ts +18 -0
- package/dist/lib/runtime-adapters/cursor.d.ts.map +1 -0
- package/dist/lib/runtime-adapters/cursor.js +113 -0
- package/dist/lib/runtime-adapters/cursor.js.map +1 -0
- package/dist/lib/runtime-adapters/gemini-cli.d.ts +18 -0
- package/dist/lib/runtime-adapters/gemini-cli.d.ts.map +1 -0
- package/dist/lib/runtime-adapters/gemini-cli.js +127 -0
- package/dist/lib/runtime-adapters/gemini-cli.js.map +1 -0
- package/dist/lib/runtime-adapters/opencode.d.ts +14 -0
- package/dist/lib/runtime-adapters/opencode.d.ts.map +1 -0
- package/dist/lib/runtime-adapters/opencode.js +109 -0
- package/dist/lib/runtime-adapters/opencode.js.map +1 -0
- package/dist/lib/runtime-detect.d.ts +22 -0
- package/dist/lib/runtime-detect.d.ts.map +1 -0
- package/dist/lib/runtime-detect.js +73 -0
- package/dist/lib/runtime-detect.js.map +1 -0
- package/dist/lib/security.d.ts +88 -0
- package/dist/lib/security.d.ts.map +1 -0
- package/dist/lib/security.js +230 -0
- package/dist/lib/security.js.map +1 -0
- package/dist/types.d.ts +224 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +31 -0
- package/dist/types.js.map +1 -0
- package/dist/workflows/state-machine.d.ts +55 -0
- package/dist/workflows/state-machine.d.ts.map +1 -0
- package/dist/workflows/state-machine.js +271 -0
- package/dist/workflows/state-machine.js.map +1 -0
- package/dist/workflows/wave-executor.d.ts +112 -0
- package/dist/workflows/wave-executor.d.ts.map +1 -0
- package/dist/workflows/wave-executor.js +496 -0
- package/dist/workflows/wave-executor.js.map +1 -0
- package/package.json +58 -0
- package/templates/build-validation.md +82 -0
- package/templates/config-default.json +21 -0
- package/templates/plan-brief.md +106 -0
- package/templates/plan-validation-log.md +77 -0
- package/templates/post-ship-review.md +75 -0
- package/templates/pre-ship-review.md +56 -0
- package/templates/research-summary.md +30 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Zero-overhead inline execution — no artifacts, no planning, just do it
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:fast — Fast Execution (Inline, No Artifacts)
|
|
6
|
+
|
|
7
|
+
Execute a trivial task immediately with zero process overhead. No Plan Brief, no state tracking, no sub-agents, no validation. Just do the thing.
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Rigor Spectrum:
|
|
11
|
+
/solveos:fast → /solveos:quick → Full workflow (/solveos:new → plan → build → ship)
|
|
12
|
+
▶ No process Light process Full process
|
|
13
|
+
No artifacts Minimal artifacts Full artifacts
|
|
14
|
+
Inline Plan + Build All phases + gates
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## When to Use This
|
|
18
|
+
|
|
19
|
+
- The task is trivial (< 5 minutes of work)
|
|
20
|
+
- The solution is obvious
|
|
21
|
+
- The cost of being wrong is near zero (easy to undo)
|
|
22
|
+
- Planning overhead exceeds the cost of the task itself
|
|
23
|
+
|
|
24
|
+
**Examples:** Rename a variable, fix a typo, add a comment, update a dependency version, adjust a config value, format a file, add an import.
|
|
25
|
+
|
|
26
|
+
**When NOT to use this:**
|
|
27
|
+
- If the task involves multiple steps → use `/solveos:quick`
|
|
28
|
+
- If you're unsure about the approach → use `/solveos:plan`
|
|
29
|
+
- If the change affects other systems or users → use the full workflow
|
|
30
|
+
|
|
31
|
+
## Execution
|
|
32
|
+
|
|
33
|
+
### 1. Understand the Request
|
|
34
|
+
|
|
35
|
+
Read the user's request. If it's clear and actionable, proceed immediately. If ambiguous, ask one clarifying question (no more).
|
|
36
|
+
|
|
37
|
+
### 2. Execute Immediately
|
|
38
|
+
|
|
39
|
+
Do the work in the current context:
|
|
40
|
+
- Make the change
|
|
41
|
+
- Verify it works (quick check, not a full validation)
|
|
42
|
+
- For software domain: create a single git commit with a descriptive message
|
|
43
|
+
|
|
44
|
+
### 3. Confirm Completion
|
|
45
|
+
|
|
46
|
+
Briefly report what was done:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Done. {One-sentence summary of what changed.}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
No build summary, no success criteria checklist, no state transitions.
|
|
53
|
+
|
|
54
|
+
### 4. Optional Logging
|
|
55
|
+
|
|
56
|
+
If `.solveos/` exists in the project, append a one-line entry to `.solveos/notes/fast-log.md`:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
- {ISO timestamp} — {one-line description of what was done}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
This creates a lightweight audit trail without the overhead of full state management.
|
|
63
|
+
|
|
64
|
+
If `.solveos/` does not exist, do not create it. Fast mode works with zero project setup.
|
|
65
|
+
|
|
66
|
+
## Constraints
|
|
67
|
+
|
|
68
|
+
- Do NOT create `.solveos/` directory if it doesn't exist
|
|
69
|
+
- Do NOT create or modify `BRIEF.md` or `STATE.md`
|
|
70
|
+
- Do NOT spawn sub-agents
|
|
71
|
+
- Do NOT ask more than one clarifying question
|
|
72
|
+
- Do NOT expand scope beyond the immediate request
|
|
73
|
+
- If the task turns out to be complex, stop and suggest: "This is more involved than a fast task. Consider running `/solveos:quick` or `/solveos:new` instead."
|
|
74
|
+
|
|
75
|
+
## Escalation Triggers
|
|
76
|
+
|
|
77
|
+
If any of these are true, suggest upgrading to a higher-rigor path:
|
|
78
|
+
|
|
79
|
+
| Trigger | Suggest |
|
|
80
|
+
|---------|---------|
|
|
81
|
+
| Task requires 3+ files to be changed | `/solveos:quick` |
|
|
82
|
+
| Task involves unclear requirements | `/solveos:plan` |
|
|
83
|
+
| Task could break existing functionality | `/solveos:quick` with build validation |
|
|
84
|
+
| Task requires research or investigation | `/solveos:new` with research gate |
|
|
85
|
+
| You find yourself planning in your head | `/solveos:quick` — make the plan explicit |
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start a new cycle informed by the previous post-ship review — carries feed-forward items
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:new-cycle — Start a New Cycle with Feed-Forward
|
|
6
|
+
|
|
7
|
+
You are starting a **new cycle** of an existing solveOS project. Unlike `/solveos:new` (which starts from scratch), this command carries forward learnings from the previous cycle's post-ship review.
|
|
8
|
+
|
|
9
|
+
This is the second feedback loop in action: **Ship -> Review -> Plan -> Build -> Ship**.
|
|
10
|
+
|
|
11
|
+
## Prerequisites
|
|
12
|
+
|
|
13
|
+
1. Check that `.solveos/` exists. If not: "No solveOS project found. Run `/solveos:new` first."
|
|
14
|
+
2. Read `.solveos/STATE.md`:
|
|
15
|
+
- Valid entry states: `CYCLE_COMPLETE` (post-ship review done) or `SHIPPED` (review skipped)
|
|
16
|
+
- If state is `INIT` through `READY_TO_SHIP`: "The current cycle isn't finished yet. Run `/solveos:ship` first, or `/solveos:new` to start fresh."
|
|
17
|
+
3. Read `.solveos/config.json` for current configuration.
|
|
18
|
+
|
|
19
|
+
## Step 1: Load Previous Review
|
|
20
|
+
|
|
21
|
+
Read the most recent post-ship review from `.solveos/reviews/cycle-{n}-review.md` where `{n}` is the current cycle number from `STATE.md`.
|
|
22
|
+
|
|
23
|
+
### If review exists — extract feed-forward items:
|
|
24
|
+
|
|
25
|
+
Parse the **Feed-Forward for Next Cycle** section:
|
|
26
|
+
|
|
27
|
+
- **New problems revealed** — problems that became visible after shipping
|
|
28
|
+
- **Deferred scope** — items cut from the last cycle that may still matter
|
|
29
|
+
- **Wrong assumptions** — assumptions that reality corrected
|
|
30
|
+
- **Open questions** — unknowns that might benefit from research
|
|
31
|
+
|
|
32
|
+
Present the feed-forward summary to the user:
|
|
33
|
+
|
|
34
|
+
> "Here's what the post-ship review surfaced for this next cycle:
|
|
35
|
+
>
|
|
36
|
+
> **New problems:**
|
|
37
|
+
> - {problem 1}
|
|
38
|
+
> - {problem 2}
|
|
39
|
+
>
|
|
40
|
+
> **Deferred scope:**
|
|
41
|
+
> - {item 1}
|
|
42
|
+
>
|
|
43
|
+
> **Wrong assumptions:**
|
|
44
|
+
> - {assumption} → {reality}
|
|
45
|
+
>
|
|
46
|
+
> **Open questions:**
|
|
47
|
+
> - {question 1}"
|
|
48
|
+
|
|
49
|
+
### If no review exists (review was skipped):
|
|
50
|
+
|
|
51
|
+
> "No post-ship review found for cycle {n}. Starting a new cycle without feed-forward context. You can still run `/solveos:review` on the shipped cycle if you'd like."
|
|
52
|
+
|
|
53
|
+
## Step 2: Loop Termination Check
|
|
54
|
+
|
|
55
|
+
Before starting a new cycle, check the three stop conditions:
|
|
56
|
+
|
|
57
|
+
### Condition 1: Problem is solved
|
|
58
|
+
|
|
59
|
+
If the post-ship review shows all success criteria were fully met:
|
|
60
|
+
|
|
61
|
+
> "The post-ship review shows all success criteria were met. The original problem may be solved.
|
|
62
|
+
>
|
|
63
|
+
> Is there still a problem to solve, or is this project done?"
|
|
64
|
+
|
|
65
|
+
Wait for user response. If done, stop here.
|
|
66
|
+
|
|
67
|
+
### Condition 2: Problem is no longer worth solving
|
|
68
|
+
|
|
69
|
+
> "Has the context changed since you started? Is this problem still worth solving?"
|
|
70
|
+
|
|
71
|
+
If the user indicates the context has changed, stop here.
|
|
72
|
+
|
|
73
|
+
### Condition 3: Building from habit, not signal
|
|
74
|
+
|
|
75
|
+
If the feed-forward section is empty or contains no actionable items:
|
|
76
|
+
|
|
77
|
+
> "The post-ship review didn't surface any new problems, deferred scope, or wrong assumptions. Starting another cycle without a clear reason leads to waste.
|
|
78
|
+
>
|
|
79
|
+
> Do you have a specific problem for the next cycle, or should we stop here?"
|
|
80
|
+
|
|
81
|
+
Wait for user response. If no clear problem, stop here.
|
|
82
|
+
|
|
83
|
+
If none of the stop conditions apply, proceed.
|
|
84
|
+
|
|
85
|
+
## Step 3: Archive Current Cycle
|
|
86
|
+
|
|
87
|
+
Before resetting state, archive the current cycle's artifacts:
|
|
88
|
+
|
|
89
|
+
1. Create `.solveos/history/cycle-{n}/` where `{n}` is the current cycle number
|
|
90
|
+
2. Move (not copy) into the archive:
|
|
91
|
+
- `.solveos/BRIEF.md` → `.solveos/history/cycle-{n}/BRIEF.md`
|
|
92
|
+
- `.solveos/STATE.md` → `.solveos/history/cycle-{n}/STATE.md`
|
|
93
|
+
- `.solveos/validations/` → `.solveos/history/cycle-{n}/validations/`
|
|
94
|
+
3. Do **NOT** archive `.solveos/reviews/` — reviews persist across cycles as the memory layer
|
|
95
|
+
4. Do **NOT** archive `.solveos/research/` — research may still be relevant
|
|
96
|
+
5. Do **NOT** archive `.solveos/config.json` — configuration carries forward
|
|
97
|
+
|
|
98
|
+
## Step 4: Reset State for New Cycle
|
|
99
|
+
|
|
100
|
+
Write a new `.solveos/STATE.md`:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"current_state": "INIT",
|
|
105
|
+
"cycle_number": {n + 1},
|
|
106
|
+
"gates_skipped": [],
|
|
107
|
+
"gates_completed": [],
|
|
108
|
+
"plan_validation_passes": 0,
|
|
109
|
+
"blockers": [],
|
|
110
|
+
"created_at": "{now}",
|
|
111
|
+
"updated_at": "{now}"
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Step 5: Save Feed-Forward Context
|
|
116
|
+
|
|
117
|
+
If feed-forward items were extracted from the post-ship review, write them to `.solveos/notes/cycle-{n}-feed-forward.md` so they're available when `/solveos:plan` runs:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
## Feed-Forward from Cycle {n}
|
|
121
|
+
|
|
122
|
+
These items were surfaced during the Cycle {n} post-ship review and should inform Cycle {n+1} planning.
|
|
123
|
+
|
|
124
|
+
### New Problems
|
|
125
|
+
- {problem}
|
|
126
|
+
|
|
127
|
+
### Deferred Scope
|
|
128
|
+
- {item}
|
|
129
|
+
|
|
130
|
+
### Wrong Assumptions
|
|
131
|
+
- {assumption} → {reality}
|
|
132
|
+
|
|
133
|
+
### Open Questions
|
|
134
|
+
- {question}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Step 6: Suggest Next Step
|
|
138
|
+
|
|
139
|
+
Based on the feed-forward items and configuration:
|
|
140
|
+
|
|
141
|
+
### If there are open questions and research gate is enabled:
|
|
142
|
+
|
|
143
|
+
> "Cycle {n+1} initialized. The previous review raised open questions — I recommend starting with research.
|
|
144
|
+
>
|
|
145
|
+
> Run `/solveos:research` to investigate, or `/solveos:plan` to start planning directly."
|
|
146
|
+
|
|
147
|
+
### If there are clear new problems and no open questions:
|
|
148
|
+
|
|
149
|
+
> "Cycle {n+1} initialized with feed-forward from Cycle {n}. The next problem is clear.
|
|
150
|
+
>
|
|
151
|
+
> Run `/solveos:plan` to create the Plan Brief. The feed-forward items from the previous review will be available as context."
|
|
152
|
+
|
|
153
|
+
### If starting without feed-forward:
|
|
154
|
+
|
|
155
|
+
> "Cycle {n+1} initialized. No feed-forward from the previous cycle.
|
|
156
|
+
>
|
|
157
|
+
> Run `/solveos:plan` to start planning, or `/solveos:research` to investigate first."
|
|
158
|
+
|
|
159
|
+
## Important Rules
|
|
160
|
+
|
|
161
|
+
- **Always check stop conditions** — don't automatically start cycles. Each cycle should have a clear reason to exist.
|
|
162
|
+
- **Feed-forward items inform planning, they don't dictate it** — the user may choose to ignore some feed-forward items or prioritize differently.
|
|
163
|
+
- **Reviews persist** — the `.solveos/reviews/` directory is never archived. It's the project's memory across cycles.
|
|
164
|
+
- **Research persists** — previous research may still be relevant. Don't archive it.
|
|
165
|
+
- **The human decides** — present feed-forward context and let the user decide what matters for the next cycle.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start a new solveOS project or cycle
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:new — Initialize a New Project or Cycle
|
|
6
|
+
|
|
7
|
+
You are initializing a new solveOS project. Follow these steps carefully.
|
|
8
|
+
|
|
9
|
+
## Step 1: Check for Existing Project
|
|
10
|
+
|
|
11
|
+
Check if a `.solveos/` directory already exists in the current working directory.
|
|
12
|
+
|
|
13
|
+
- If it exists, read `.solveos/STATE.md` to check the current cycle state.
|
|
14
|
+
- If the cycle is **not** in `CYCLE_COMPLETE` or `SHIPPED` state, warn the user:
|
|
15
|
+
> "There's an active solveOS cycle in state `{current_state}`. Starting a new project will archive the current cycle. Continue?"
|
|
16
|
+
- Wait for user confirmation before proceeding. If they decline, stop.
|
|
17
|
+
- If they confirm, archive the current cycle using the existing cycle number, then proceed.
|
|
18
|
+
- If it doesn't exist, proceed directly.
|
|
19
|
+
|
|
20
|
+
## Step 2: Gather Project Information
|
|
21
|
+
|
|
22
|
+
Ask the user three questions. Be conversational, not robotic.
|
|
23
|
+
|
|
24
|
+
### Question 1: The Problem
|
|
25
|
+
> "What problem are you trying to solve? Give me 1-2 sentences — the problem, not the solution."
|
|
26
|
+
|
|
27
|
+
### Question 2: The Stakes
|
|
28
|
+
> "How high are the stakes? This helps me decide how rigorous to be."
|
|
29
|
+
> - **High** — Failure is costly. I'll enable all gates (research, plan validation, build validation, review).
|
|
30
|
+
> - **Medium** — Standard work. I'll enable plan validation and review.
|
|
31
|
+
> - **Low** — Quick task. I'll use a lighter process with fewer gates.
|
|
32
|
+
|
|
33
|
+
### Question 3: The Domain
|
|
34
|
+
> "What domain is this work in?"
|
|
35
|
+
> - **Software** — Code, APIs, infrastructure
|
|
36
|
+
> - **Content** — Articles, docs, marketing copy
|
|
37
|
+
> - **Research** — Investigation, analysis, literature review
|
|
38
|
+
> - **Strategy** — Decisions, planning, roadmaps
|
|
39
|
+
> - **General** — Doesn't fit the above
|
|
40
|
+
|
|
41
|
+
## Step 3: Create the Project
|
|
42
|
+
|
|
43
|
+
Based on the user's answers:
|
|
44
|
+
|
|
45
|
+
1. Create the `.solveos/` directory structure:
|
|
46
|
+
- `.solveos/config.json`
|
|
47
|
+
- `.solveos/STATE.md`
|
|
48
|
+
- `.solveos/research/`
|
|
49
|
+
- `.solveos/validations/`
|
|
50
|
+
- `.solveos/reviews/`
|
|
51
|
+
- `.solveos/history/`
|
|
52
|
+
- `.solveos/notes/`
|
|
53
|
+
|
|
54
|
+
2. Write `config.json` with these settings:
|
|
55
|
+
|
|
56
|
+
**High stakes:**
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"mode": "interactive",
|
|
60
|
+
"gates": {
|
|
61
|
+
"research": true,
|
|
62
|
+
"plan_validation": true,
|
|
63
|
+
"build_validation": true,
|
|
64
|
+
"review_pre_ship": true,
|
|
65
|
+
"review_post_ship": true
|
|
66
|
+
},
|
|
67
|
+
"plan_validation_max_passes": 3,
|
|
68
|
+
"granularity": "fine",
|
|
69
|
+
"auto_advance": false,
|
|
70
|
+
"domain": "{user's choice}",
|
|
71
|
+
"runtime": "auto"
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Medium stakes:**
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mode": "interactive",
|
|
79
|
+
"gates": {
|
|
80
|
+
"research": false,
|
|
81
|
+
"plan_validation": true,
|
|
82
|
+
"build_validation": false,
|
|
83
|
+
"review_pre_ship": true,
|
|
84
|
+
"review_post_ship": false
|
|
85
|
+
},
|
|
86
|
+
"plan_validation_max_passes": 2,
|
|
87
|
+
"granularity": "standard",
|
|
88
|
+
"auto_advance": false,
|
|
89
|
+
"domain": "{user's choice}",
|
|
90
|
+
"runtime": "auto"
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Low stakes:**
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"mode": "interactive",
|
|
98
|
+
"gates": {
|
|
99
|
+
"research": false,
|
|
100
|
+
"plan_validation": false,
|
|
101
|
+
"build_validation": false,
|
|
102
|
+
"review_pre_ship": false,
|
|
103
|
+
"review_post_ship": false
|
|
104
|
+
},
|
|
105
|
+
"plan_validation_max_passes": 1,
|
|
106
|
+
"granularity": "coarse",
|
|
107
|
+
"auto_advance": false,
|
|
108
|
+
"domain": "{user's choice}",
|
|
109
|
+
"runtime": "auto"
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
3. Write `STATE.md` with:
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"current_state": "INIT",
|
|
117
|
+
"cycle_number": 1,
|
|
118
|
+
"gates_skipped": [],
|
|
119
|
+
"gates_completed": [],
|
|
120
|
+
"plan_validation_passes": 0,
|
|
121
|
+
"blockers": [],
|
|
122
|
+
"created_at": "{now}",
|
|
123
|
+
"updated_at": "{now}"
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Step 4: Suggest Next Step
|
|
128
|
+
|
|
129
|
+
Based on the gate configuration:
|
|
130
|
+
|
|
131
|
+
- If `research` gate is enabled:
|
|
132
|
+
> "Project initialized. I recommend starting with research: run `/solveos:research` to investigate the problem space before planning."
|
|
133
|
+
|
|
134
|
+
- If `research` gate is disabled:
|
|
135
|
+
> "Project initialized. Next step: run `/solveos:plan` to create your Plan Brief."
|
|
136
|
+
|
|
137
|
+
## Important Rules
|
|
138
|
+
|
|
139
|
+
- Never skip the user questions. The whole point is that the human decides.
|
|
140
|
+
- If the user gives a vague problem statement, ask them to be more specific before proceeding.
|
|
141
|
+
- Always confirm the configuration before writing files.
|
|
142
|
+
- The `.solveos/` directory should be added to the project's `.gitignore` unless the user wants to version-control their planning artifacts.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Suggest or execute the next step in the cycle
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:next — What Should I Do Next?
|
|
6
|
+
|
|
7
|
+
You are helping the user navigate to the next step in the solveOS cycle.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
1. Check that `.solveos/` exists. If not:
|
|
12
|
+
> "No solveOS project found. Run `/solveos:new` to start."
|
|
13
|
+
Stop here.
|
|
14
|
+
|
|
15
|
+
## What to Read
|
|
16
|
+
|
|
17
|
+
- `.solveos/STATE.md` — Current state
|
|
18
|
+
- `.solveos/config.json` — Gate configuration and `auto_advance` setting
|
|
19
|
+
|
|
20
|
+
## Logic
|
|
21
|
+
|
|
22
|
+
### 1. Get Valid Next States
|
|
23
|
+
|
|
24
|
+
Based on the current state, the valid next states are:
|
|
25
|
+
|
|
26
|
+
| Current State | Valid Next States |
|
|
27
|
+
|---------------|-------------------|
|
|
28
|
+
| `INIT` | `RESEARCHING`, `PLANNING` |
|
|
29
|
+
| `RESEARCHING` | `PLANNING` |
|
|
30
|
+
| `PLANNING` | `VALIDATING_PLAN`, `BUILDING` |
|
|
31
|
+
| `VALIDATING_PLAN` | `PLANNING` (gaps found), `BUILDING` (passed) |
|
|
32
|
+
| `BUILDING` | `VALIDATING_BUILD`, `REVIEWING_PRE`, `READY_TO_SHIP` |
|
|
33
|
+
| `VALIDATING_BUILD` | `BUILDING` (issues), `PLANNING` (major issues), `REVIEWING_PRE` (passed), `READY_TO_SHIP` |
|
|
34
|
+
| `REVIEWING_PRE` | `BUILDING` (not ready), `READY_TO_SHIP` (ready) |
|
|
35
|
+
| `READY_TO_SHIP` | `SHIPPED` |
|
|
36
|
+
| `SHIPPED` | `REVIEWING_POST`, `CYCLE_COMPLETE` |
|
|
37
|
+
| `REVIEWING_POST` | `CYCLE_COMPLETE` |
|
|
38
|
+
| `CYCLE_COMPLETE` | `INIT` (new cycle) |
|
|
39
|
+
|
|
40
|
+
### 2. Filter by Gate Configuration
|
|
41
|
+
|
|
42
|
+
If a gate is disabled in `config.json`, skip past it to the next enabled state:
|
|
43
|
+
|
|
44
|
+
- If `gates.research` is `false` and current state is `INIT` → recommend `PLANNING` (skip research)
|
|
45
|
+
- If `gates.plan_validation` is `false` and current state is `PLANNING` → recommend `BUILDING` (skip plan validation)
|
|
46
|
+
- If `gates.build_validation` is `false` and current state is `BUILDING` → recommend `REVIEWING_PRE` or `READY_TO_SHIP`
|
|
47
|
+
- If `gates.review_pre_ship` is `false` and current state is `BUILDING` or `VALIDATING_BUILD` → recommend `READY_TO_SHIP`
|
|
48
|
+
- If `gates.review_post_ship` is `false` and current state is `SHIPPED` → recommend `CYCLE_COMPLETE`
|
|
49
|
+
|
|
50
|
+
### 3. Map to Command
|
|
51
|
+
|
|
52
|
+
| Recommended State | Command |
|
|
53
|
+
|-------------------|---------|
|
|
54
|
+
| `RESEARCHING` | `/solveos:research` |
|
|
55
|
+
| `PLANNING` | `/solveos:plan` |
|
|
56
|
+
| `VALIDATING_PLAN` | `/solveos:validate-plan` |
|
|
57
|
+
| `BUILDING` | `/solveos:build` |
|
|
58
|
+
| `VALIDATING_BUILD` | `/solveos:validate-build` |
|
|
59
|
+
| `REVIEWING_PRE` | `/solveos:review` |
|
|
60
|
+
| `READY_TO_SHIP` | `/solveos:ship` |
|
|
61
|
+
| `SHIPPED` | `/solveos:ship` |
|
|
62
|
+
| `REVIEWING_POST` | `/solveos:review` |
|
|
63
|
+
| `CYCLE_COMPLETE` | `/solveos:new-cycle` |
|
|
64
|
+
| `INIT` | `/solveos:new-cycle` |
|
|
65
|
+
|
|
66
|
+
### 4. Present or Execute
|
|
67
|
+
|
|
68
|
+
Check `auto_advance` in `config.json`:
|
|
69
|
+
|
|
70
|
+
**If `auto_advance: false` (default):**
|
|
71
|
+
> "You're currently in **{state description}**. Next step: run `{command}` to {brief explanation}."
|
|
72
|
+
|
|
73
|
+
**If `auto_advance: true`:**
|
|
74
|
+
> "Auto-advancing to **{state description}**..."
|
|
75
|
+
Then execute the recommended command.
|
|
76
|
+
|
|
77
|
+
## Edge Cases
|
|
78
|
+
|
|
79
|
+
- If there are multiple valid next states and the gate config doesn't disambiguate, present all options:
|
|
80
|
+
> "You're in **Build phase**. Next options:
|
|
81
|
+
> 1. `/solveos:validate-build` — Check your output against success criteria
|
|
82
|
+
> 2. `/solveos:review` — Pre-ship review
|
|
83
|
+
> 3. `/solveos:ship` — Ship directly (skips validation and review)"
|
|
84
|
+
|
|
85
|
+
- If the state is `VALIDATING_PLAN` or `VALIDATING_BUILD`, the "next" depends on the result of the validation (passed or failed). Ask:
|
|
86
|
+
> "How did the validation go? Passed (continue forward) or needs work (go back)?"
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create a Plan Brief for the current cycle
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:plan — Create the Plan Brief
|
|
6
|
+
|
|
7
|
+
You are guiding the user through creating a **Plan Brief** — the central artifact of the solveOS cycle. The Plan Brief is both a thinking tool (it forces clarity) and an instruction set (the AI builds from it).
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
1. Check that `.solveos/` exists. If not, tell the user to run `/solveos:new` first.
|
|
12
|
+
2. Read `.solveos/STATE.md` to verify the current state is `INIT`, `RESEARCHING`, or `PLANNING` (re-entering to refine).
|
|
13
|
+
- If the state is anything else, warn: "The current cycle is in state `{state}`. Planning should happen before building. Continue anyway?" and respect the user's decision.
|
|
14
|
+
3. Load context:
|
|
15
|
+
- Read all files in `.solveos/research/` (if any) — these are research summaries from the Research gate.
|
|
16
|
+
- Read all files in `.solveos/reviews/` (if any) — these contain feed-forward items from previous cycles.
|
|
17
|
+
- Read `.solveos/BRIEF.md` if it exists (this is a refinement pass, not a fresh start).
|
|
18
|
+
|
|
19
|
+
## Behavior
|
|
20
|
+
|
|
21
|
+
Invoke the **solveos-planner** agent behavior as defined in `agents/solveos-planner.md`.
|
|
22
|
+
|
|
23
|
+
Walk the user through each of the 8 Plan Brief questions, one at a time. For each question:
|
|
24
|
+
|
|
25
|
+
1. Explain what the question is asking and what a good answer looks like.
|
|
26
|
+
2. If research summaries exist, reference relevant findings.
|
|
27
|
+
3. If previous cycle reviews exist, surface feed-forward items.
|
|
28
|
+
4. If the user's answer is vague or incomplete, challenge it (see Common Mistakes below).
|
|
29
|
+
5. Move to the next question only when the current one has a solid answer.
|
|
30
|
+
|
|
31
|
+
## The 8 Questions
|
|
32
|
+
|
|
33
|
+
### 1. Problem
|
|
34
|
+
> "What is broken, missing, or needed?"
|
|
35
|
+
|
|
36
|
+
- Must be 1-2 sentences
|
|
37
|
+
- Must state the problem, NOT the solution
|
|
38
|
+
- Challenge if the answer embeds a solution (e.g., "We need to add caching" → "That's a solution. What's the problem that makes you want caching?")
|
|
39
|
+
|
|
40
|
+
### 2. Audience
|
|
41
|
+
> "Who experiences this problem?"
|
|
42
|
+
|
|
43
|
+
- Must be a specific person, role, or group
|
|
44
|
+
- Challenge "users", "everyone", "the team" → ask "which users specifically?"
|
|
45
|
+
- Good: "Backend engineers on the payments team who deploy 3x/day"
|
|
46
|
+
|
|
47
|
+
### 3. Goal
|
|
48
|
+
> "What does success look like?"
|
|
49
|
+
|
|
50
|
+
- Must be one sentence
|
|
51
|
+
- Must start with a verb
|
|
52
|
+
- Must be specific enough that someone else could verify it
|
|
53
|
+
- Challenge vague goals (e.g., "improve performance" → "What metric? What threshold?")
|
|
54
|
+
|
|
55
|
+
### 4. Appetite
|
|
56
|
+
> "How much time/effort are you willing to invest?"
|
|
57
|
+
|
|
58
|
+
- This is a **bet**, not an estimate
|
|
59
|
+
- It sets the scope ceiling — if the work takes longer, you re-scope, not extend
|
|
60
|
+
- Challenge "as long as it takes" → "What's the maximum you'd invest before reconsidering the approach?"
|
|
61
|
+
|
|
62
|
+
### 5. Constraints
|
|
63
|
+
> "What are the non-negotiables?"
|
|
64
|
+
|
|
65
|
+
- Technical constraints (language, framework, existing systems)
|
|
66
|
+
- Process constraints (approval required, backwards compatibility)
|
|
67
|
+
- Resource constraints (can't use X, must use Y)
|
|
68
|
+
- Output as bullet list
|
|
69
|
+
|
|
70
|
+
### 6. Success Criteria
|
|
71
|
+
> "How will you know it's done?"
|
|
72
|
+
|
|
73
|
+
- Each criterion must be **measurable** (a human or test can verify it)
|
|
74
|
+
- Each criterion must be **falsifiable** (you can prove it failed)
|
|
75
|
+
- Output as checkbox list: `- [ ] criterion`
|
|
76
|
+
- Challenge unmeasurable criteria ("works well" → "what does 'well' mean? what's the pass/fail test?")
|
|
77
|
+
- Challenge untestable criteria ("users are happy" → "how would you measure that?")
|
|
78
|
+
|
|
79
|
+
### 7. Core Assumption
|
|
80
|
+
> "What must be true for this plan to work?"
|
|
81
|
+
|
|
82
|
+
- Every plan has an underlying bet — name it
|
|
83
|
+
- If this assumption is wrong, the plan may need to change
|
|
84
|
+
- Challenge "it should work" → "What's the riskiest thing you're assuming?"
|
|
85
|
+
|
|
86
|
+
### 8. Rabbit Holes
|
|
87
|
+
> "What unknowns could drag the build off track?"
|
|
88
|
+
|
|
89
|
+
- Areas where investigation could spiral without progress
|
|
90
|
+
- Naming them is a defense mechanism — you'll notice when you're in one
|
|
91
|
+
- If the user says "none", push back: "Every problem has unknowns. What's the thing you'd most hate to discover mid-build?"
|
|
92
|
+
|
|
93
|
+
## After All 8 Questions
|
|
94
|
+
|
|
95
|
+
### 9. Out of Scope
|
|
96
|
+
> "What are you explicitly NOT solving?"
|
|
97
|
+
|
|
98
|
+
- Prevents scope creep during build
|
|
99
|
+
- Challenge empty lists: "What related problems will you resist solving this cycle?"
|
|
100
|
+
|
|
101
|
+
## Plan Phase Exit Checklist
|
|
102
|
+
|
|
103
|
+
Before writing the final BRIEF.md, verify:
|
|
104
|
+
|
|
105
|
+
- [ ] Problem is stated without embedding a solution
|
|
106
|
+
- [ ] Audience is specific (not "users" or "everyone")
|
|
107
|
+
- [ ] Goal starts with a verb and is one sentence
|
|
108
|
+
- [ ] Appetite is a bet, not an estimate
|
|
109
|
+
- [ ] Constraints are listed (even if few)
|
|
110
|
+
- [ ] Every success criterion is measurable and falsifiable
|
|
111
|
+
- [ ] Core assumption is explicit and testable
|
|
112
|
+
- [ ] At least one rabbit hole is identified
|
|
113
|
+
- [ ] Out of scope is non-empty
|
|
114
|
+
- [ ] A stranger could read this brief and build from it
|
|
115
|
+
|
|
116
|
+
If any item fails, point it out and ask the user to revise that section.
|
|
117
|
+
|
|
118
|
+
## Output
|
|
119
|
+
|
|
120
|
+
1. Write the completed Plan Brief to `.solveos/BRIEF.md` using the template format from `templates/plan-brief.md`.
|
|
121
|
+
2. Update `.solveos/STATE.md`:
|
|
122
|
+
- Transition `current_state` to the appropriate next state
|
|
123
|
+
- Update `updated_at` timestamp
|
|
124
|
+
3. Read `.solveos/config.json` to check gate configuration, then suggest the next step:
|
|
125
|
+
- If `plan_validation` gate is enabled: "Plan Brief created. I recommend validating it: run `/solveos:validate-plan`."
|
|
126
|
+
- If `plan_validation` gate is disabled: "Plan Brief created. Ready to build: run `/solveos:build`."
|
|
127
|
+
|
|
128
|
+
## Common Mistakes to Watch For
|
|
129
|
+
|
|
130
|
+
| Mistake | What the User Says | What to Ask |
|
|
131
|
+
|---------|-------------------|-------------|
|
|
132
|
+
| Solution masquerading as problem | "We need to add a cache" | "What's the problem that makes you want a cache?" |
|
|
133
|
+
| Vague audience | "Users" or "everyone" | "Which users specifically? What role, team, or segment?" |
|
|
134
|
+
| Unmeasurable goal | "Improve performance" | "What metric? What threshold? How would you verify it?" |
|
|
135
|
+
| Infinite appetite | "As long as it takes" | "What's your maximum investment before reconsidering?" |
|
|
136
|
+
| Missing constraints | "No constraints" | "What about language, framework, existing systems, backwards compatibility?" |
|
|
137
|
+
| Vague success criteria | "It works" | "How would you prove it works? What's the test?" |
|
|
138
|
+
| No rabbit holes | "Can't think of any" | "What's the thing you'd most hate to discover mid-build?" |
|
|
139
|
+
| Empty out of scope | Nothing listed | "What related problems will you resist solving this cycle?" |
|