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,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Lightweight workflow — minimal Plan Brief + immediate Build, skip all gates
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:quick — Quick Cycle (Plan + Build, No Gates)
|
|
6
|
+
|
|
7
|
+
A lightweight path for tasks where you know the problem, know the solution, and the cost of being slightly wrong is low. Combines planning and building into a single session with minimal overhead.
|
|
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
|
+
- You understand the problem well
|
|
20
|
+
- The solution is straightforward
|
|
21
|
+
- The cost of being slightly wrong is low (easy to fix later)
|
|
22
|
+
- You don't need research, plan validation, build validation, or review
|
|
23
|
+
|
|
24
|
+
**When NOT to use this:** If the task is complex, ambiguous, high-stakes, or involves unfamiliar territory — use the full workflow (`/solveos:new` → `/solveos:plan` → `/solveos:build` → `/solveos:ship`) instead.
|
|
25
|
+
|
|
26
|
+
## Step 1: Initialize (if needed)
|
|
27
|
+
|
|
28
|
+
1. If `.solveos/` does not exist, create the directory structure:
|
|
29
|
+
- `.solveos/`, `.solveos/research/`, `.solveos/validations/`, `.solveos/reviews/`, `.solveos/history/`, `.solveos/notes/`
|
|
30
|
+
- Write default `config.json`
|
|
31
|
+
2. If `.solveos/` already exists, read `.solveos/STATE.md`:
|
|
32
|
+
- If a cycle is already in progress (not `INIT` or `CYCLE_COMPLETE`), warn the user: "A cycle is already in progress (state: {state}). Running `/solveos:quick` will start a new cycle. Continue?"
|
|
33
|
+
- If `CYCLE_COMPLETE`, start a new cycle normally
|
|
34
|
+
|
|
35
|
+
## Step 2: Create Minimal Plan Brief
|
|
36
|
+
|
|
37
|
+
Create `.solveos/BRIEF.md` with only the essential fields. Ask the user (or infer from context):
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
# Plan Brief (Quick)
|
|
41
|
+
|
|
42
|
+
## Problem
|
|
43
|
+
|
|
44
|
+
{What problem are we solving?}
|
|
45
|
+
|
|
46
|
+
## Goal
|
|
47
|
+
|
|
48
|
+
{What does success look like?}
|
|
49
|
+
|
|
50
|
+
## Success Criteria
|
|
51
|
+
|
|
52
|
+
- [ ] {Criterion 1}
|
|
53
|
+
- [ ] {Criterion 2}
|
|
54
|
+
...
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Omitted sections** (intentionally skipped for speed): Audience, Appetite, Constraints, Core Assumption, Rabbit Holes, Out of Scope.
|
|
58
|
+
|
|
59
|
+
If the user provides a natural language description of their task, extract Problem, Goal, and Success Criteria from it. Confirm with the user before proceeding.
|
|
60
|
+
|
|
61
|
+
## Step 3: Update State — Skip All Gates
|
|
62
|
+
|
|
63
|
+
Update `.solveos/STATE.md`:
|
|
64
|
+
|
|
65
|
+
1. Set `current_state: "BUILDING"`
|
|
66
|
+
2. Record all skipped gates in the transitions log:
|
|
67
|
+
- `RESEARCH` (skipped)
|
|
68
|
+
- `PLAN_VALIDATION` (skipped)
|
|
69
|
+
3. Update timestamp
|
|
70
|
+
|
|
71
|
+
The state transitions are: `INIT → PLANNING → BUILDING` (with RESEARCH and PLAN_VALIDATION recorded as skipped).
|
|
72
|
+
|
|
73
|
+
## Step 4: Execute Build
|
|
74
|
+
|
|
75
|
+
Follow the same build process as `/solveos:build`:
|
|
76
|
+
|
|
77
|
+
1. **Re-read the brief** — even the minimal version has Success Criteria to verify against
|
|
78
|
+
2. **Decompose into units** — adjust for granularity setting in config (default: standard)
|
|
79
|
+
3. **Execute units** using wave-based execution if multiple units, direct execution if single unit
|
|
80
|
+
4. **Verify each unit** against the success criteria
|
|
81
|
+
5. **For software domain:** create atomic git commits
|
|
82
|
+
|
|
83
|
+
## Step 5: Quick Exit
|
|
84
|
+
|
|
85
|
+
After build is complete:
|
|
86
|
+
|
|
87
|
+
1. Update `STATE.md`:
|
|
88
|
+
- Record skipped gates: `BUILD_VALIDATION`, `REVIEW_PRE_SHIP`, `REVIEW_POST_SHIP`
|
|
89
|
+
- Transition through: `BUILDING → READY_TO_SHIP → SHIPPED → CYCLE_COMPLETE`
|
|
90
|
+
2. Present a brief summary:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
## Quick Cycle Complete
|
|
94
|
+
|
|
95
|
+
**Units completed:** {n}/{total}
|
|
96
|
+
**Success criteria met:** {n}/{total}
|
|
97
|
+
**Gates skipped:** Research, Plan Validation, Build Validation, Pre-Ship Review, Post-Ship Review
|
|
98
|
+
|
|
99
|
+
All done. Run `/solveos:status` to review, or `/solveos:new-cycle` to start a new cycle.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
3. Archive the cycle to `.solveos/history/cycle-{n}/`
|
|
103
|
+
|
|
104
|
+
## AI Guidance
|
|
105
|
+
|
|
106
|
+
- Even in quick mode, verify against success criteria — that's the minimum quality bar
|
|
107
|
+
- If you discover the task is more complex than expected, suggest switching to full workflow: "This is getting complex. Consider running `/solveos:plan` for a full Plan Brief."
|
|
108
|
+
- Don't expand scope beyond the stated Goal and Success Criteria
|
|
109
|
+
- If the user didn't provide clear success criteria, ask for them — they're required even in quick mode
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Conduct bounded research on a specific question before planning
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:research — Research Gate
|
|
6
|
+
|
|
7
|
+
You are running the **Research gate** of the solveOS cycle. Research helps you understand the problem space before committing to a plan. It is bounded — you research a specific question for a specific amount of time, then decide whether you know enough to plan.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
1. Check that `.solveos/` exists. If not: "No solveOS project found. Run `/solveos:new` first."
|
|
12
|
+
2. Read `.solveos/STATE.md` to verify the current state allows research:
|
|
13
|
+
- Valid entry states: `INIT`, `PLANNING` (re-researching while planning)
|
|
14
|
+
- If state is `BUILDING` or later: "You're past the research stage. If you need to research mid-build, note it as a discovered task."
|
|
15
|
+
3. Read `.solveos/config.json` to check if the research gate is enabled.
|
|
16
|
+
- If `gates.research` is `false`: "The research gate is disabled in your config. You can still run it — do you want to proceed?"
|
|
17
|
+
|
|
18
|
+
## Step 1: Get a Specific Research Question
|
|
19
|
+
|
|
20
|
+
Ask the user:
|
|
21
|
+
> "What specific question do you need answered before you can plan?"
|
|
22
|
+
|
|
23
|
+
**Quality check the question:**
|
|
24
|
+
- If the question is vague ("tell me about X", "research Y"), push back:
|
|
25
|
+
> "That's broad. What specific thing do you need to know about X? What decision will this research inform?"
|
|
26
|
+
- If the question is a symptom, not a root cause, use the **Five Whys technique**:
|
|
27
|
+
> "Why is that important? What happens if you don't know this?"
|
|
28
|
+
Keep asking "why?" (up to 5 times) until you reach the real question.
|
|
29
|
+
- A good research question is specific enough that you could answer "yes, I know this" or "no, I don't."
|
|
30
|
+
|
|
31
|
+
**Examples of good questions:**
|
|
32
|
+
- "What are the latency characteristics of DynamoDB vs. PostgreSQL for our access pattern?"
|
|
33
|
+
- "How do other CLI tools install slash commands into OpenCode?"
|
|
34
|
+
- "What does the existing codebase use for configuration management?"
|
|
35
|
+
|
|
36
|
+
**Examples of bad questions:**
|
|
37
|
+
- "Tell me about databases" (too broad)
|
|
38
|
+
- "What should we build?" (that's planning, not research)
|
|
39
|
+
- "Is this a good idea?" (not answerable with research)
|
|
40
|
+
|
|
41
|
+
## Step 2: Set a Time Limit
|
|
42
|
+
|
|
43
|
+
Ask the user:
|
|
44
|
+
> "How much time should I spend on this? (e.g., 10 minutes, 30 minutes, 1 hour)"
|
|
45
|
+
|
|
46
|
+
The time limit is a scope constraint. It prevents research from becoming an infinite rabbit hole. If the user says "as long as it takes," push back:
|
|
47
|
+
> "Research expands to fill available time. Pick a limit. You can always do another round."
|
|
48
|
+
|
|
49
|
+
## Step 3: Conduct Research
|
|
50
|
+
|
|
51
|
+
Invoke the **solveos-researcher** agent behavior:
|
|
52
|
+
|
|
53
|
+
1. State the question and time boundary clearly
|
|
54
|
+
2. Investigate using available tools (read files, search codebase, fetch URLs)
|
|
55
|
+
3. Focus on the specific question — don't go on tangents
|
|
56
|
+
4. Track key findings as you go
|
|
57
|
+
5. When time is up (or question is answered), stop and synthesize
|
|
58
|
+
|
|
59
|
+
## Step 4: Write Research Summary
|
|
60
|
+
|
|
61
|
+
Write the output to `.solveos/research/{topic}-research.md` using the Research Summary template:
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
## Research Summary
|
|
65
|
+
|
|
66
|
+
**Question:** {the specific question}
|
|
67
|
+
**Time spent:** {actual time}
|
|
68
|
+
|
|
69
|
+
### Key Findings
|
|
70
|
+
|
|
71
|
+
- {finding 1}
|
|
72
|
+
- {finding 2}
|
|
73
|
+
- {finding 3}
|
|
74
|
+
|
|
75
|
+
### Conclusions
|
|
76
|
+
|
|
77
|
+
- {what this means for the Plan Brief}
|
|
78
|
+
|
|
79
|
+
### Open Questions / Remaining Unknowns
|
|
80
|
+
|
|
81
|
+
- {what you still don't know}
|
|
82
|
+
|
|
83
|
+
### Decision
|
|
84
|
+
|
|
85
|
+
- [ ] I have enough information to write the Plan Brief
|
|
86
|
+
- [ ] I need more research: {what specifically}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Filename convention:** Use a descriptive, kebab-case topic name.
|
|
90
|
+
- Good: `dynamodb-vs-postgres-latency-research.md`
|
|
91
|
+
- Bad: `research-1.md`
|
|
92
|
+
|
|
93
|
+
## Step 5: Update State
|
|
94
|
+
|
|
95
|
+
Update `.solveos/STATE.md`:
|
|
96
|
+
- If this is the first research: transition to `RESEARCHING`
|
|
97
|
+
- If the user is done researching (decision = "enough to plan"): state stays ready for `/solveos:plan`
|
|
98
|
+
- Update `updated_at` timestamp
|
|
99
|
+
|
|
100
|
+
If the research gate was previously marked as skipped (user went straight to planning, then came back), remove it from `gates_skipped`.
|
|
101
|
+
|
|
102
|
+
## Step 6: Suggest Next Step
|
|
103
|
+
|
|
104
|
+
Present the decision to the user:
|
|
105
|
+
|
|
106
|
+
If **enough to plan**:
|
|
107
|
+
> "Research complete. Your findings are saved in `.solveos/research/{topic}-research.md`. Ready to plan: run `/solveos:plan`."
|
|
108
|
+
|
|
109
|
+
If **need more research**:
|
|
110
|
+
> "Research saved. You identified more questions to investigate. Run `/solveos:research` again with the next question."
|
|
111
|
+
|
|
112
|
+
## Important Rules
|
|
113
|
+
|
|
114
|
+
- Multiple research sessions produce separate files — never overwrite previous research
|
|
115
|
+
- Research is scoped: one question per session, bounded by time
|
|
116
|
+
- Research informs planning but does not replace it — don't start solving during research
|
|
117
|
+
- If the user's question is really a planning question ("what should we build?"), redirect to `/solveos:plan`
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run a pre-ship or post-ship review — holistic judgment before shipping, outcome measurement after
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:review — Review Gate
|
|
6
|
+
|
|
7
|
+
You are running the **Review gate** of the solveOS cycle. This gate has two modes:
|
|
8
|
+
|
|
9
|
+
- **Pre-ship review:** A holistic judgment check before shipping. Asks whether the result actually solves the problem for the stated audience.
|
|
10
|
+
- **Post-ship review:** An outcome measurement after shipping. Measures success criteria against real-world results and generates feed-forward inputs for the next cycle.
|
|
11
|
+
|
|
12
|
+
The mode is auto-detected based on the current cycle state.
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
1. Check that `.solveos/` exists. If not: "No solveOS project found. Run `/solveos:new` first."
|
|
17
|
+
2. Read `.solveos/STATE.md` to determine the mode:
|
|
18
|
+
- **Pre-ship mode** if state is: `BUILDING`, `VALIDATING_BUILD`, or `REVIEWING_PRE`
|
|
19
|
+
- **Post-ship mode** if state is: `SHIPPED` or `REVIEWING_POST`
|
|
20
|
+
- If state is `INIT` or `PLANNING`: "Nothing to review yet. Run `/solveos:build` first."
|
|
21
|
+
- If state is `CYCLE_COMPLETE`: "This cycle is already reviewed. Run `/solveos:new-cycle` to start the next one."
|
|
22
|
+
3. Read `.solveos/BRIEF.md` — the Plan Brief is central to both review modes.
|
|
23
|
+
4. Read `.solveos/config.json` to check if the review gate is enabled.
|
|
24
|
+
- For pre-ship: check `gates.review_pre_ship`
|
|
25
|
+
- For post-ship: check `gates.review_post_ship`
|
|
26
|
+
- If disabled: "The {mode} review gate is disabled in your config. You can still run it — do you want to proceed?"
|
|
27
|
+
5. Read any existing validation and build artifacts for context.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Pre-Ship Mode
|
|
32
|
+
|
|
33
|
+
### Purpose
|
|
34
|
+
|
|
35
|
+
The pre-ship review is a **judgment check**, not a technical check. Build Validation asks "does it work?" — the pre-ship review asks "should we ship it?"
|
|
36
|
+
|
|
37
|
+
### Step 1: Review Against the Plan Brief
|
|
38
|
+
|
|
39
|
+
Invoke the **solveos-reviewer** agent in pre-ship mode. Evaluate:
|
|
40
|
+
|
|
41
|
+
#### Does the result solve the problem stated in the Plan Brief?
|
|
42
|
+
|
|
43
|
+
- Re-read the **problem** field from the Plan Brief
|
|
44
|
+
- Does the built result actually address this problem?
|
|
45
|
+
- Or does it address a related but different problem?
|
|
46
|
+
- Has the problem itself changed since planning?
|
|
47
|
+
|
|
48
|
+
#### Would the named audience find this useful/usable/readable?
|
|
49
|
+
|
|
50
|
+
- Re-read the **audience** field from the Plan Brief
|
|
51
|
+
- Put yourself in the audience's position
|
|
52
|
+
- Would they understand it? Would they use it? Would they benefit from it?
|
|
53
|
+
- Is the quality level appropriate for this audience?
|
|
54
|
+
|
|
55
|
+
#### What is the weakest part of the result?
|
|
56
|
+
|
|
57
|
+
- Every piece of work has a weakest part. Name it explicitly.
|
|
58
|
+
- Is the weakest part in a critical path or a peripheral area?
|
|
59
|
+
- Would the audience notice the weakness?
|
|
60
|
+
|
|
61
|
+
#### Are you shipping because it's ready, or because you're tired?
|
|
62
|
+
|
|
63
|
+
- This is the most important question. Be honest.
|
|
64
|
+
- Sunk cost is not a reason to ship.
|
|
65
|
+
- "Good enough" is valid — but only if you can articulate why it's good enough for this audience.
|
|
66
|
+
|
|
67
|
+
### Step 2: Write Pre-Ship Review
|
|
68
|
+
|
|
69
|
+
Write the output to `.solveos/validations/pre-ship-review.md` using the Pre-Ship Review template.
|
|
70
|
+
|
|
71
|
+
### Step 3: Decide and Transition
|
|
72
|
+
|
|
73
|
+
Present the assessment to the user:
|
|
74
|
+
|
|
75
|
+
#### If ready to ship:
|
|
76
|
+
|
|
77
|
+
> "Pre-ship review complete. The result solves the stated problem for the stated audience.
|
|
78
|
+
>
|
|
79
|
+
> Weakest part: {description} — but it's acceptable because {reason}.
|
|
80
|
+
>
|
|
81
|
+
> Run `/solveos:ship` to ship."
|
|
82
|
+
|
|
83
|
+
Update `STATE.md`:
|
|
84
|
+
- Mark `REVIEW_PRE_SHIP` as a completed gate
|
|
85
|
+
- Transition to `READY_TO_SHIP`
|
|
86
|
+
- Update `updated_at`
|
|
87
|
+
|
|
88
|
+
#### If not ready:
|
|
89
|
+
|
|
90
|
+
> "Pre-ship review found concerns:
|
|
91
|
+
> - {concern}
|
|
92
|
+
>
|
|
93
|
+
> I recommend returning to Build to address these before shipping.
|
|
94
|
+
>
|
|
95
|
+
> Options:
|
|
96
|
+
> 1. Run `/solveos:build` to iterate
|
|
97
|
+
> 2. Ship anyway (you understand the risks)
|
|
98
|
+
>
|
|
99
|
+
> What would you like to do?"
|
|
100
|
+
|
|
101
|
+
Update `STATE.md`:
|
|
102
|
+
- If returning to Build: transition to `BUILDING`
|
|
103
|
+
- If shipping anyway: mark review as completed with accepted concerns
|
|
104
|
+
- Update `updated_at`
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Post-Ship Mode
|
|
109
|
+
|
|
110
|
+
### Purpose
|
|
111
|
+
|
|
112
|
+
The post-ship review measures **real-world outcomes** against what was planned. It generates feed-forward inputs that inform the next cycle's Plan Brief. This is how solveOS learns.
|
|
113
|
+
|
|
114
|
+
### When to Run (Timing Guidance)
|
|
115
|
+
|
|
116
|
+
Present timing guidance based on the domain in `config.json`:
|
|
117
|
+
|
|
118
|
+
| What shipped | When to review | Why |
|
|
119
|
+
|---|---|---|
|
|
120
|
+
| Software feature | After 1-2 weeks of real usage | Need real user data, not launch-day excitement |
|
|
121
|
+
| Article / content | After 3-7 days live | Engagement patterns stabilize after a few days |
|
|
122
|
+
| Strategy / decision | After first observable outcomes | Could be days or months depending on the decision |
|
|
123
|
+
| Internal tool | After first real use by the team | One real session reveals more than any preview |
|
|
124
|
+
| Quick experiment | Within 24-48 hours | The whole point was to learn fast |
|
|
125
|
+
|
|
126
|
+
> "This is a post-ship review. When are you running this relative to shipping?
|
|
127
|
+
> (For context: {timing guidance for this domain})"
|
|
128
|
+
|
|
129
|
+
### Step 1: Measure Success Criteria
|
|
130
|
+
|
|
131
|
+
For each success criterion from the Plan Brief, measure the real-world result:
|
|
132
|
+
|
|
133
|
+
| # | Criterion | Result | Evidence |
|
|
134
|
+
|---|-----------|--------|----------|
|
|
135
|
+
| 1 | {criterion} | Met / Partially met / Not met | {what actually happened} |
|
|
136
|
+
|
|
137
|
+
### Step 2: Reflect
|
|
138
|
+
|
|
139
|
+
#### What worked well?
|
|
140
|
+
- What decisions or approaches produced good outcomes?
|
|
141
|
+
- What would you repeat?
|
|
142
|
+
|
|
143
|
+
#### What didn't work?
|
|
144
|
+
- What decisions or approaches produced bad outcomes or unexpected problems?
|
|
145
|
+
- What would you do differently?
|
|
146
|
+
|
|
147
|
+
#### What single decision had the most impact?
|
|
148
|
+
- Positive or negative — name the one decision that mattered most.
|
|
149
|
+
- Why did it matter? What was the mechanism?
|
|
150
|
+
|
|
151
|
+
### Step 3: Generate Feed-Forward Inputs
|
|
152
|
+
|
|
153
|
+
This is the critical output. These items become inputs to the next cycle:
|
|
154
|
+
|
|
155
|
+
#### New problems revealed
|
|
156
|
+
- What problems did shipping reveal that weren't visible before?
|
|
157
|
+
- Are these new problems, or were they latent problems that surfaced?
|
|
158
|
+
|
|
159
|
+
#### Deferred scope
|
|
160
|
+
- What was intentionally cut during this cycle that still matters?
|
|
161
|
+
- Should it be the next cycle, or is it no longer important?
|
|
162
|
+
|
|
163
|
+
#### Wrong assumptions
|
|
164
|
+
- What assumptions from the Plan Brief's **core assumption** turned out to be wrong?
|
|
165
|
+
- What did reality teach you that the plan didn't anticipate?
|
|
166
|
+
|
|
167
|
+
#### Open questions
|
|
168
|
+
- What questions remain unanswered?
|
|
169
|
+
- Would these benefit from a Research gate in the next cycle?
|
|
170
|
+
|
|
171
|
+
### Step 4: Write Post-Ship Review
|
|
172
|
+
|
|
173
|
+
Write the output to `.solveos/reviews/cycle-{n}-review.md` where `{n}` is the current cycle number from `STATE.md`.
|
|
174
|
+
|
|
175
|
+
Use the Post-Ship Review template.
|
|
176
|
+
|
|
177
|
+
### Step 5: Transition to Cycle Complete
|
|
178
|
+
|
|
179
|
+
> "Post-ship review complete. Feed-forward items saved for the next cycle.
|
|
180
|
+
>
|
|
181
|
+
> When you're ready to start the next cycle, run `/solveos:new-cycle` — it will pre-load these feed-forward items into your new Plan Brief.
|
|
182
|
+
>
|
|
183
|
+
> Or if this project is done, no further action needed."
|
|
184
|
+
|
|
185
|
+
Update `STATE.md`:
|
|
186
|
+
- Mark `REVIEW_POST_SHIP` as a completed gate
|
|
187
|
+
- Transition to `CYCLE_COMPLETE`
|
|
188
|
+
- Update `updated_at`
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Important Rules
|
|
193
|
+
|
|
194
|
+
- **Pre-ship review is judgment, not verification** — Build Validation checks criteria. Pre-ship review checks whether you *should* ship.
|
|
195
|
+
- **Post-ship review requires real data** — don't run it immediately after shipping. Wait for real-world feedback.
|
|
196
|
+
- **Feed-forward items are structured** — they should be specific enough that `/solveos:new-cycle` can load them as starting context.
|
|
197
|
+
- **Reviews persist across cycles** — the `.solveos/reviews/` directory is NOT cleared when a cycle is archived. Reviews are the memory layer.
|
|
198
|
+
- **The "are you tired?" question is real** — sunk cost shipping is the most common failure mode. Call it out honestly.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Ship the current cycle — final check, confirm, archive
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:ship — Ship Phase
|
|
6
|
+
|
|
7
|
+
You are entering the **Ship phase** of the solveOS cycle. Shipping means putting your work in front of reality — the only true validator.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
1. Check that `.solveos/` exists. If not: "No solveOS project found. Run `/solveos:new` first."
|
|
12
|
+
2. Read `.solveos/STATE.md` to verify the current state allows shipping:
|
|
13
|
+
- Valid entry states: `READY_TO_SHIP`, `BUILDING` (skipping post-build gates), `REVIEWING_PRE` (review passed)
|
|
14
|
+
- If state is `INIT` or `PLANNING`: "Nothing to ship yet. Run `/solveos:build` first."
|
|
15
|
+
3. Read `.solveos/BRIEF.md` — you need this for the final check.
|
|
16
|
+
4. Read `.solveos/config.json` for domain settings.
|
|
17
|
+
|
|
18
|
+
## Step 1: Final Brief Check (5 minutes)
|
|
19
|
+
|
|
20
|
+
Before shipping, do a final alignment check. Present each question to the user:
|
|
21
|
+
|
|
22
|
+
### Success Criteria Review
|
|
23
|
+
Read the success criteria from `BRIEF.md` and check each one:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
## Final Brief Check
|
|
27
|
+
|
|
28
|
+
Let's verify the build matches the plan:
|
|
29
|
+
|
|
30
|
+
Success Criteria:
|
|
31
|
+
- [ ] {criterion 1} — Was this met? (yes/no/partially)
|
|
32
|
+
- [ ] {criterion 2} — Was this met? (yes/no/partially)
|
|
33
|
+
...
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
For each criterion:
|
|
37
|
+
- **Met**: Mark as [x]
|
|
38
|
+
- **Partially met**: Note what's missing. Ask: "Ship with this gap, or fix first?"
|
|
39
|
+
- **Not met**: Flag clearly. Ask: "This criterion isn't met. Ship anyway, defer it, or fix first?"
|
|
40
|
+
|
|
41
|
+
### Scope Check
|
|
42
|
+
> "Did any out-of-scope work sneak in? Is the output within the boundaries set by the brief?"
|
|
43
|
+
|
|
44
|
+
### Brief Accuracy Check
|
|
45
|
+
> "Is the brief still accurate, or did it silently drift during the build? If it changed, note the differences."
|
|
46
|
+
|
|
47
|
+
## Step 2: Define "Shipped"
|
|
48
|
+
|
|
49
|
+
Based on the domain from `.solveos/config.json`, explain what "shipped" means and how to verify it:
|
|
50
|
+
|
|
51
|
+
| Domain | What "Shipped" Means | Verification |
|
|
52
|
+
|--------|---------------------|--------------|
|
|
53
|
+
| `software` | Code is deployed or merged to the target branch. It's accessible to the audience named in the brief. | PR merged / deploy confirmed / feature flag enabled |
|
|
54
|
+
| `content` | Content is published and publicly accessible to the target audience. | URL is live / post is published / document is shared |
|
|
55
|
+
| `research` | Findings are shared with stakeholders. Conclusions are documented and accessible. | Report delivered / presentation given / document shared |
|
|
56
|
+
| `strategy` | Decision is communicated to stakeholders. Action plan is in place with owners and timelines. | Decision email sent / meeting held / plan documented with next steps |
|
|
57
|
+
| `general` | The output is delivered to the intended audience in the intended format. | Audience has received and can access the output |
|
|
58
|
+
|
|
59
|
+
Ask the user:
|
|
60
|
+
> "Based on your domain ({domain}), 'shipped' means: {definition}.
|
|
61
|
+
> Verification: {verification method}.
|
|
62
|
+
> Has this been done, or do you need to do it now?"
|
|
63
|
+
|
|
64
|
+
## Step 3: Confirm Ship
|
|
65
|
+
|
|
66
|
+
This is a human decision. Never auto-ship.
|
|
67
|
+
|
|
68
|
+
> "Ready to ship? This will:
|
|
69
|
+
> 1. Mark this cycle as SHIPPED
|
|
70
|
+
> 2. Archive the Plan Brief and state to `.solveos/history/cycle-{cycle_number}/`
|
|
71
|
+
> 3. Clear the current brief and validations for the next cycle
|
|
72
|
+
>
|
|
73
|
+
> Confirm? (yes/no)"
|
|
74
|
+
|
|
75
|
+
If the user says no, suggest alternatives:
|
|
76
|
+
- "Run `/solveos:build` to continue working"
|
|
77
|
+
- "Run `/solveos:review` for a pre-ship review"
|
|
78
|
+
- "Run `/solveos:status` to see where things stand"
|
|
79
|
+
|
|
80
|
+
## Step 4: Capture Learnings
|
|
81
|
+
|
|
82
|
+
Before archiving, spend 10 minutes capturing learnings. Ask:
|
|
83
|
+
|
|
84
|
+
> **What worked well in this cycle?**
|
|
85
|
+
> (Process, tools, decisions, approaches that you'd repeat)
|
|
86
|
+
|
|
87
|
+
> **What didn't work?**
|
|
88
|
+
> (Friction points, wrong assumptions, wasted effort)
|
|
89
|
+
|
|
90
|
+
> **What would you do differently next time?**
|
|
91
|
+
> (Specific changes to process, planning, or execution)
|
|
92
|
+
|
|
93
|
+
> **Any feed-forward items for the next cycle?**
|
|
94
|
+
> (Things that should be addressed next but are out of scope now)
|
|
95
|
+
|
|
96
|
+
Save these learnings as part of the archive.
|
|
97
|
+
|
|
98
|
+
## Step 5: Archive and Transition
|
|
99
|
+
|
|
100
|
+
1. Archive the current cycle:
|
|
101
|
+
- Copy `.solveos/BRIEF.md` to `.solveos/history/cycle-{n}/BRIEF.md`
|
|
102
|
+
- Copy `.solveos/STATE.md` to `.solveos/history/cycle-{n}/STATE.md`
|
|
103
|
+
- Copy `.solveos/validations/` to `.solveos/history/cycle-{n}/validations/`
|
|
104
|
+
- Write learnings to `.solveos/history/cycle-{n}/learnings.md`
|
|
105
|
+
|
|
106
|
+
2. Clear current cycle artifacts:
|
|
107
|
+
- Remove `.solveos/BRIEF.md`
|
|
108
|
+
- Clear `.solveos/validations/` contents
|
|
109
|
+
|
|
110
|
+
3. Update `.solveos/STATE.md`:
|
|
111
|
+
- Set `current_state` to `SHIPPED`
|
|
112
|
+
- Update `updated_at` timestamp
|
|
113
|
+
|
|
114
|
+
## Step 6: Suggest Next Step
|
|
115
|
+
|
|
116
|
+
Read `.solveos/config.json` gate configuration:
|
|
117
|
+
|
|
118
|
+
- If `review_post_ship` gate is enabled:
|
|
119
|
+
> "Cycle {n} shipped. I recommend a post-ship review to capture what reality teaches you: run `/solveos:review`."
|
|
120
|
+
|
|
121
|
+
- If `review_post_ship` gate is disabled:
|
|
122
|
+
> "Cycle {n} shipped. Ready for the next cycle? Run `/solveos:new-cycle` to start fresh with feed-forward from this cycle's learnings."
|
|
123
|
+
|
|
124
|
+
## Important Rules
|
|
125
|
+
|
|
126
|
+
- Never auto-ship. The human confirms.
|
|
127
|
+
- Never skip the final brief check, even if the user wants to rush.
|
|
128
|
+
- Always capture learnings — this is how the process improves.
|
|
129
|
+
- Learnings are not a performance review. They're a calibration tool. Be matter-of-fact, not judgmental.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show current cycle status
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /solveos:status — Where Am I?
|
|
6
|
+
|
|
7
|
+
You are showing the user their current position 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 data
|
|
18
|
+
- `.solveos/BRIEF.md` — Problem and goal (if it exists)
|
|
19
|
+
- `.solveos/config.json` — Gate configuration
|
|
20
|
+
|
|
21
|
+
## Output Format
|
|
22
|
+
|
|
23
|
+
Present the status in this format:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
## solveOS Status
|
|
27
|
+
|
|
28
|
+
**Cycle:** {cycle_number}
|
|
29
|
+
**Phase:** {human-readable state description}
|
|
30
|
+
**Updated:** {updated_at}
|
|
31
|
+
|
|
32
|
+
### Brief
|
|
33
|
+
**Problem:** {problem from BRIEF.md, or "No brief yet"}
|
|
34
|
+
**Goal:** {goal from BRIEF.md, or "—"}
|
|
35
|
+
|
|
36
|
+
### Gates
|
|
37
|
+
| Gate | Status |
|
|
38
|
+
|------|--------|
|
|
39
|
+
| Research | {completed / skipped / pending / disabled} |
|
|
40
|
+
| Plan Validation | {completed / skipped / pending / disabled} (passes: {n}) |
|
|
41
|
+
| Build Validation | {completed / skipped / pending / disabled} |
|
|
42
|
+
| Pre-ship Review | {completed / skipped / pending / disabled} |
|
|
43
|
+
| Post-ship Review | {completed / skipped / pending / disabled} |
|
|
44
|
+
|
|
45
|
+
### Blockers
|
|
46
|
+
{list of blockers, or "None"}
|
|
47
|
+
|
|
48
|
+
### Next Step
|
|
49
|
+
{suggestion based on current state}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## State-to-Description Mapping
|
|
53
|
+
|
|
54
|
+
| State | Description |
|
|
55
|
+
|-------|-------------|
|
|
56
|
+
| `INIT` | Project initialized — ready to start |
|
|
57
|
+
| `RESEARCHING` | Research gate — gathering information |
|
|
58
|
+
| `PLANNING` | Plan phase — creating the Plan Brief |
|
|
59
|
+
| `VALIDATING_PLAN` | Plan Validation gate — checking the brief (pass {n}) |
|
|
60
|
+
| `BUILDING` | Build phase — executing against the plan |
|
|
61
|
+
| `VALIDATING_BUILD` | Build Validation gate — checking the output |
|
|
62
|
+
| `REVIEWING_PRE` | Pre-ship Review — final check before shipping |
|
|
63
|
+
| `READY_TO_SHIP` | Ready to ship — all checks passed |
|
|
64
|
+
| `SHIPPED` | Shipped — work delivered |
|
|
65
|
+
| `REVIEWING_POST` | Post-ship Review — reflecting on the cycle |
|
|
66
|
+
| `CYCLE_COMPLETE` | Cycle complete — ready for next cycle |
|
|
67
|
+
|
|
68
|
+
## Gate Status Logic
|
|
69
|
+
|
|
70
|
+
For each gate, determine status by checking:
|
|
71
|
+
1. Is it in `gates_completed`? → "completed"
|
|
72
|
+
2. Is it in `gates_skipped`? → "skipped"
|
|
73
|
+
3. Is it disabled in `config.json` (`gates.{name}: false`)? → "disabled"
|
|
74
|
+
4. Otherwise → "pending"
|
|
75
|
+
|
|
76
|
+
## Keep It Concise
|
|
77
|
+
|
|
78
|
+
This is a status check, not a report. Keep the output short and scannable. The user wants to know where they are and what to do next.
|