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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +194 -0
  3. package/agents/solveos-build-validator.md +183 -0
  4. package/agents/solveos-debugger.md +226 -0
  5. package/agents/solveos-executor.md +187 -0
  6. package/agents/solveos-plan-validator.md +200 -0
  7. package/agents/solveos-planner.md +190 -0
  8. package/agents/solveos-researcher.md +152 -0
  9. package/agents/solveos-reviewer.md +263 -0
  10. package/commands/solveos/archive.md +106 -0
  11. package/commands/solveos/build.md +170 -0
  12. package/commands/solveos/fast.md +85 -0
  13. package/commands/solveos/new-cycle.md +165 -0
  14. package/commands/solveos/new.md +142 -0
  15. package/commands/solveos/next.md +86 -0
  16. package/commands/solveos/plan.md +139 -0
  17. package/commands/solveos/quick.md +109 -0
  18. package/commands/solveos/research.md +117 -0
  19. package/commands/solveos/review.md +198 -0
  20. package/commands/solveos/ship.md +129 -0
  21. package/commands/solveos/status.md +78 -0
  22. package/commands/solveos/validate-build.md +155 -0
  23. package/commands/solveos/validate-plan.md +115 -0
  24. package/dist/bin/install.d.ts +11 -0
  25. package/dist/bin/install.d.ts.map +1 -0
  26. package/dist/bin/install.js +158 -0
  27. package/dist/bin/install.js.map +1 -0
  28. package/dist/hooks/brief-anchor.d.ts +68 -0
  29. package/dist/hooks/brief-anchor.d.ts.map +1 -0
  30. package/dist/hooks/brief-anchor.js +236 -0
  31. package/dist/hooks/brief-anchor.js.map +1 -0
  32. package/dist/hooks/context-monitor.d.ts +70 -0
  33. package/dist/hooks/context-monitor.d.ts.map +1 -0
  34. package/dist/hooks/context-monitor.js +166 -0
  35. package/dist/hooks/context-monitor.js.map +1 -0
  36. package/dist/lib/artifacts.d.ts +63 -0
  37. package/dist/lib/artifacts.d.ts.map +1 -0
  38. package/dist/lib/artifacts.js +382 -0
  39. package/dist/lib/artifacts.js.map +1 -0
  40. package/dist/lib/config.d.ts +10 -0
  41. package/dist/lib/config.d.ts.map +1 -0
  42. package/dist/lib/config.js +29 -0
  43. package/dist/lib/config.js.map +1 -0
  44. package/dist/lib/runtime-adapters/claude-code.d.ts +18 -0
  45. package/dist/lib/runtime-adapters/claude-code.d.ts.map +1 -0
  46. package/dist/lib/runtime-adapters/claude-code.js +125 -0
  47. package/dist/lib/runtime-adapters/claude-code.js.map +1 -0
  48. package/dist/lib/runtime-adapters/cursor.d.ts +18 -0
  49. package/dist/lib/runtime-adapters/cursor.d.ts.map +1 -0
  50. package/dist/lib/runtime-adapters/cursor.js +113 -0
  51. package/dist/lib/runtime-adapters/cursor.js.map +1 -0
  52. package/dist/lib/runtime-adapters/gemini-cli.d.ts +18 -0
  53. package/dist/lib/runtime-adapters/gemini-cli.d.ts.map +1 -0
  54. package/dist/lib/runtime-adapters/gemini-cli.js +127 -0
  55. package/dist/lib/runtime-adapters/gemini-cli.js.map +1 -0
  56. package/dist/lib/runtime-adapters/opencode.d.ts +14 -0
  57. package/dist/lib/runtime-adapters/opencode.d.ts.map +1 -0
  58. package/dist/lib/runtime-adapters/opencode.js +109 -0
  59. package/dist/lib/runtime-adapters/opencode.js.map +1 -0
  60. package/dist/lib/runtime-detect.d.ts +22 -0
  61. package/dist/lib/runtime-detect.d.ts.map +1 -0
  62. package/dist/lib/runtime-detect.js +73 -0
  63. package/dist/lib/runtime-detect.js.map +1 -0
  64. package/dist/lib/security.d.ts +88 -0
  65. package/dist/lib/security.d.ts.map +1 -0
  66. package/dist/lib/security.js +230 -0
  67. package/dist/lib/security.js.map +1 -0
  68. package/dist/types.d.ts +224 -0
  69. package/dist/types.d.ts.map +1 -0
  70. package/dist/types.js +31 -0
  71. package/dist/types.js.map +1 -0
  72. package/dist/workflows/state-machine.d.ts +55 -0
  73. package/dist/workflows/state-machine.d.ts.map +1 -0
  74. package/dist/workflows/state-machine.js +271 -0
  75. package/dist/workflows/state-machine.js.map +1 -0
  76. package/dist/workflows/wave-executor.d.ts +112 -0
  77. package/dist/workflows/wave-executor.d.ts.map +1 -0
  78. package/dist/workflows/wave-executor.js +496 -0
  79. package/dist/workflows/wave-executor.js.map +1 -0
  80. package/package.json +58 -0
  81. package/templates/build-validation.md +82 -0
  82. package/templates/config-default.json +21 -0
  83. package/templates/plan-brief.md +106 -0
  84. package/templates/plan-validation-log.md +77 -0
  85. package/templates/post-ship-review.md +75 -0
  86. package/templates/pre-ship-review.md +56 -0
  87. 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?" |