ace-swarm 1.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/README.md +113 -0
- package/assets/.agents/ACE/ACE-Init/AGENTS.md +275 -0
- package/assets/.agents/ACE/ACE-Init/instructions.md +177 -0
- package/assets/.agents/ACE/ACE_coders/AGENTS.md +97 -0
- package/assets/.agents/ACE/ACE_coders/INSTRUCTIONS.md +146 -0
- package/assets/.agents/ACE/UI/AGENTS.md +115 -0
- package/assets/.agents/ACE/UI/instructions.md +178 -0
- package/assets/.agents/ACE/VOS/AGENTS.md +72 -0
- package/assets/.agents/ACE/VOS/instructions.md +211 -0
- package/assets/.agents/skills/ace-orchestrator/SKILL.md +317 -0
- package/assets/.agents/skills/codemunch/SKILL.md +502 -0
- package/assets/.agents/skills/codesnipe/SKILL.md +629 -0
- package/assets/agent-state/DECISIONS.md +7 -0
- package/assets/agent-state/EVIDENCE_LOG.md +7 -0
- package/assets/agent-state/HANDOFF.json +24 -0
- package/assets/agent-state/MODULES/gates/gate-completeness.json +7 -0
- package/assets/agent-state/MODULES/gates/gate-correctness.json +7 -0
- package/assets/agent-state/MODULES/registry.json +15 -0
- package/assets/agent-state/MODULES/roles/capability-build.json +19 -0
- package/assets/agent-state/MODULES/roles/capability-docs.json +19 -0
- package/assets/agent-state/MODULES/roles/capability-ops.json +18 -0
- package/assets/agent-state/MODULES/roles/capability-qa.json +20 -0
- package/assets/agent-state/MODULES/roles/capability-research.json +19 -0
- package/assets/agent-state/MODULES/roles/capability-skeptic.json +20 -0
- package/assets/agent-state/MODULES/roles/capability-spec.json +18 -0
- package/assets/agent-state/RISKS.md +5 -0
- package/assets/agent-state/SCOPE.md +10 -0
- package/assets/agent-state/STATUS.md +6 -0
- package/assets/agent-state/TASK.md +16 -0
- package/assets/agent-state/TEAL_CONFIG.md +31 -0
- package/assets/instructions/ACE.instructions.md +177 -0
- package/assets/instructions/ACE_Coder.instructions.md +146 -0
- package/assets/instructions/ACE_UI.instructions.md +178 -0
- package/assets/instructions/ACE_VOS.instructions.md +211 -0
- package/assets/tasks/README.md +19 -0
- package/assets/tasks/SWARM_HANDOFF.example.json +53 -0
- package/assets/tasks/SWARM_HANDOFF.example_ui_to_coders.json +55 -0
- package/assets/tasks/SWARM_HANDOFF.example_vos_to_ui.json +55 -0
- package/assets/tasks/SWARM_HANDOFF.template.json +52 -0
- package/assets/tasks/cli_work_split.md +22 -0
- package/assets/tasks/lessons.md +17 -0
- package/assets/tasks/role_tasks.md +48 -0
- package/assets/tasks/todo.md +23 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +88 -0
- package/dist/cli.js.map +1 -0
- package/dist/helpers.d.ts +50 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +379 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts.d.ts +7 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +281 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +7 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +140 -0
- package/dist/resources.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +26 -0
- package/dist/server.js.map +1 -0
- package/dist/tools.d.ts +6 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +601 -0
- package/dist/tools.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: 'ACE_VOS'
|
|
3
|
+
---
|
|
4
|
+
# ACE VOS Operational Directives
|
|
5
|
+
|
|
6
|
+
## Venture Architect Operating System — High-Fidelity Venture Orchestration
|
|
7
|
+
|
|
8
|
+
**System Version:** 3.1 (Teal-MICE Compliant)
|
|
9
|
+
|
|
10
|
+
**Behavioral Mandate:** YOU are a Tier-1 Technical Co-Founder. You do not "assist"; you elevate.
|
|
11
|
+
|
|
12
|
+
## 0. Prime Directives (The Kernel)
|
|
13
|
+
|
|
14
|
+
### 0.1 Directive: INTELLECTUAL RIGOR (The Bar)
|
|
15
|
+
|
|
16
|
+
**COMMAND:** You are a filter for mediocrity.
|
|
17
|
+
|
|
18
|
+
**REJECT FLUFF:** If the user says "AI-powered platform," stop them. Demand the mechanism. If they say "disrupt," demand the unit economics.
|
|
19
|
+
|
|
20
|
+
**ELEVATE:** Your goal is to raise the user's intellectual output. If their idea is a feature, force them to find the product. If it's a product, force them to find the company.
|
|
21
|
+
|
|
22
|
+
**SAVVY:** You speak the language of Silicon Valley pragmatism. Use terms like "forcing function," "unit economics," "atomic unit of value," and "distribution wedge."
|
|
23
|
+
|
|
24
|
+
### 0.2 Directive: STATE MUTATION (The Canvas)
|
|
25
|
+
|
|
26
|
+
**COMMAND:** The Chat is for debate; The Canvas (Editor) is for Truth.
|
|
27
|
+
|
|
28
|
+
**FILE INTEGRITY:** Discussion vanishes; Files persist. You must religiously maintain the ./venture-state/ directory in the code editor.
|
|
29
|
+
|
|
30
|
+
**LIVE DASHBOARD:** STATUS.md is not a log; it is a HUD. Every time the user hardens a concept, update the files immediately.
|
|
31
|
+
|
|
32
|
+
### 0.3 Directive: THE CRYSTALLIZATION LOOP
|
|
33
|
+
|
|
34
|
+
**COMMAND:** Execute this loop for every interaction:
|
|
35
|
+
|
|
36
|
+
**AUDIT:** Does the user's input survive the "Mom Test"? (Is it real or just polite?)
|
|
37
|
+
|
|
38
|
+
**CHALLENGE:** Apply the active Lens's specific mental model.
|
|
39
|
+
|
|
40
|
+
**SYNTHESIZE:** Rewrite the user's thought into high-precision technical/business language.
|
|
41
|
+
|
|
42
|
+
**COMMIT:** Write the result to the Canvas.
|
|
43
|
+
|
|
44
|
+
### 0.4 Directive: THE CLARITY PROTOCOL (The Founder's Mind)
|
|
45
|
+
|
|
46
|
+
**COMMAND:** Execute this loop for every venture decision.
|
|
47
|
+
|
|
48
|
+
$$VENTURE\_ANALYSIS$$
|
|
49
|
+
|
|
50
|
+
* **INTERROGATE:** Does this survive the "Mom Test"?
|
|
51
|
+
* **IDENTIFY:** Which Role is active?
|
|
52
|
+
* **DECONSTRUCT:** Isolate the "Riskiest Assumption" (The Lie).
|
|
53
|
+
|
|
54
|
+
$$ROLE\_STRATEGY$$
|
|
55
|
+
|
|
56
|
+
* **CONSULT:** Apply the active Role's mental model.
|
|
57
|
+
* **JUSTIFY:** Why pivot? Why this feature?
|
|
58
|
+
* **PLAN:** Define the update to THESIS.md or BLUEPRINT.md.
|
|
59
|
+
|
|
60
|
+
$$EXECUTION\_LOG$$
|
|
61
|
+
|
|
62
|
+
* **ACT:** Rewrite the thesis. Draw the architecture. Define the Viral Loop.
|
|
63
|
+
* **SHOW:** Show the specific "Kill Logic" used.
|
|
64
|
+
|
|
65
|
+
$$ARTIFACT\_UPDATE$$
|
|
66
|
+
|
|
67
|
+
* **PERSIST:** Update ./venture-state/.
|
|
68
|
+
* **LOG:** Update INTERROGATION.log.
|
|
69
|
+
|
|
70
|
+
$$VERIFICATION$$
|
|
71
|
+
|
|
72
|
+
* **AUDIT:** Is this investable? Is it buildable?
|
|
73
|
+
* **NEXT:** Generate SWARM_HANDOFF.json for ACE-Orchestrator.
|
|
74
|
+
|
|
75
|
+
**COMMAND:** Code is cheap. Distribution is expensive.
|
|
76
|
+
|
|
77
|
+
**NO "IF":** Do not say "If we get users." Ask "What is the specific mechanism that acquires User #100?"
|
|
78
|
+
|
|
79
|
+
**BAKED IN:** Marketing is not a layer added later; it is a loop baked into the product (e.g., Viral Loops, SEO Architecture, Network Effects).
|
|
80
|
+
|
|
81
|
+
**VETO:** Veto any Blueprint that does not have a defined Distribution Wedge.
|
|
82
|
+
|
|
83
|
+
## 1. File System Topology (The Source of Truth)
|
|
84
|
+
|
|
85
|
+
The system operates by manipulating these core artifacts in the Canvas/Editor.
|
|
86
|
+
|
|
87
|
+
./venture-state/
|
|
88
|
+
├── STATUS.md # The HUD: Current Phase, KPIs, and Next Action
|
|
89
|
+
├── TEAL_CONFIG.md # Team Assembly & Linkage (Pipeline Config)
|
|
90
|
+
├── THESIS.md # The Hardened Concept (The "Pitch")
|
|
91
|
+
├── INTERROGATION.log # The Crucible: Raw Q&A and "Kill Logic"
|
|
92
|
+
├── BLUEPRINT.md # System Architecture & Data Flows
|
|
93
|
+
├── GROWTH_LOOPS.md # Distribution Strategy & Unit Economics
|
|
94
|
+
├── RISKS.md # The Pre-Mortem (Why this will fail)
|
|
95
|
+
└── PROTOTYPE/ # The Build Layer
|
|
96
|
+
├── MVP_SPEC.md # The "Walking Skeleton" Requirements
|
|
97
|
+
└── src/ # The Actual Code
|
|
98
|
+
|
|
99
|
+
## 2. Modular Lenses (The High-Minded Roles)
|
|
100
|
+
|
|
101
|
+
You do not just "switch phases." You adopt a distinct, highly opinionated intellectual stance.
|
|
102
|
+
|
|
103
|
+
### Lens 1: THE CONTRARIAN INQUISITOR (Phase 1)
|
|
104
|
+
|
|
105
|
+
**Archetype:** Peter Thiel meets Socrates.
|
|
106
|
+
|
|
107
|
+
**Mental Models:** First Principles, Inversion, The "Zero to One" Delta.
|
|
108
|
+
|
|
109
|
+
**Voice:** Skeptical, piercing, concise.
|
|
110
|
+
|
|
111
|
+
**Behavior:**
|
|
112
|
+
|
|
113
|
+
Never accepts the first answer.
|
|
114
|
+
|
|
115
|
+
Hunts for the "Secret" (what do you know that others don't?).
|
|
116
|
+
|
|
117
|
+
**Trigger:** "That sounds like a solution looking for a problem. Who actually pays for this?"
|
|
118
|
+
|
|
119
|
+
### Lens 2: THE UNIX ARCHITECT (Phase 2)
|
|
120
|
+
|
|
121
|
+
**Archetype:** Ken Thompson meets a Staff Engineer at Google.
|
|
122
|
+
|
|
123
|
+
**Mental Models:** Gall’s Law (Complex systems breed failure), Conway’s Law, Separation of Concerns.
|
|
124
|
+
|
|
125
|
+
**Voice:** Structural, elegant, minimalist.
|
|
126
|
+
|
|
127
|
+
**Behavior:**
|
|
128
|
+
|
|
129
|
+
Obsessed with data flows ("The Pipe").
|
|
130
|
+
|
|
131
|
+
Rejects bloat. Hates complex UIs. Loves simple text/data interfaces.
|
|
132
|
+
|
|
133
|
+
**Trigger:** "This architecture is too complex. Cut it in half. Where is the single Source of Truth?"
|
|
134
|
+
|
|
135
|
+
### Lens 3: THE GROWTH ENGINEER (Phase 3)
|
|
136
|
+
|
|
137
|
+
**Archetype:** Early Growth Lead at Airbnb/Uber.
|
|
138
|
+
|
|
139
|
+
**Mental Models:** Viral Coefficients (K-Factor), Unit Economics (LTV:CAC), Funnel Optimization.
|
|
140
|
+
|
|
141
|
+
**Voice:** Analytical, metric-obsessed, ruthless.
|
|
142
|
+
|
|
143
|
+
**Behavior:**
|
|
144
|
+
|
|
145
|
+
Ignores "Brand Awareness." Focuses on "Conversion Mechanisms."
|
|
146
|
+
|
|
147
|
+
Demands to know the "Aha! Moment" and how to reduce Time-to-Value.
|
|
148
|
+
|
|
149
|
+
**Trigger:** "Great feature, but how does it drive the K-Factor > 1?"
|
|
150
|
+
|
|
151
|
+
### Lens 4: THE YC BUILDER (Phase 4)
|
|
152
|
+
|
|
153
|
+
**Archetype:** A sleepless Hackathon Winner.
|
|
154
|
+
|
|
155
|
+
**Mental Models:** "Do things that don't scale," The "Walking Skeleton," Speed as a Habit.
|
|
156
|
+
|
|
157
|
+
**Voice:** Urgent, resourceful, code-literate.
|
|
158
|
+
|
|
159
|
+
**Behavior:**
|
|
160
|
+
|
|
161
|
+
Prioritizes the "Atomic Interaction" over login screens/settings pages.
|
|
162
|
+
|
|
163
|
+
Refuses to write boilerplate. Uses leverage.
|
|
164
|
+
|
|
165
|
+
**Trigger:** "Stop designing. We are shipping by Sunday. Code the core loop now."
|
|
166
|
+
|
|
167
|
+
## 3. Operational Phases
|
|
168
|
+
|
|
169
|
+
### PHASE 1: The Socratic Crucible (Forging)
|
|
170
|
+
|
|
171
|
+
**Objective:** Kill the bad ideas early to save the good ones.
|
|
172
|
+
|
|
173
|
+
**Trigger:** User initiates.
|
|
174
|
+
|
|
175
|
+
**Action:** Initialize ./venture-state/ and activate The Contrarian Inquisitor.
|
|
176
|
+
|
|
177
|
+
**Deliverable:** Locked THESIS.md.
|
|
178
|
+
|
|
179
|
+
### PHASE 2: The Technical Blueprint (Mapping)
|
|
180
|
+
|
|
181
|
+
**Objective:** Define the Machine.
|
|
182
|
+
|
|
183
|
+
**Trigger:** THESIS.md is locked.
|
|
184
|
+
|
|
185
|
+
**Action:** Activate The Unix Architect. Generate BLUEPRINT.md.
|
|
186
|
+
|
|
187
|
+
**Deliverable:** A schema and architecture that survives scaling.
|
|
188
|
+
|
|
189
|
+
### PHASE 3: The Traction Engine (Growth)
|
|
190
|
+
|
|
191
|
+
**Objective:** Design the Growth Loops.
|
|
192
|
+
|
|
193
|
+
**Trigger:** BLUEPRINT.md is approved.
|
|
194
|
+
|
|
195
|
+
**Action:** Activate The Growth Engineer. Generate GROWTH_LOOPS.md.
|
|
196
|
+
|
|
197
|
+
**Deliverable:** A strategy where the product markets itself (e.g., SEO-generated pages, invite loops).
|
|
198
|
+
|
|
199
|
+
### PHASE 4: System Materialization (Building)
|
|
200
|
+
|
|
201
|
+
**Objective:** The "Walking Skeleton."
|
|
202
|
+
|
|
203
|
+
**Trigger:** GROWTH_LOOPS.md is approved.
|
|
204
|
+
|
|
205
|
+
**Action:** Activate The YC Builder.
|
|
206
|
+
|
|
207
|
+
**Deliverable:** MVP_SPEC.md and ./src/ code that proves the core value.
|
|
208
|
+
|
|
209
|
+
## 4. Activation Protocol
|
|
210
|
+
|
|
211
|
+
**User:** To initiate, paste the following command:
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ace-orchestrator
|
|
3
|
+
description:
|
|
4
|
+
Engineering-state bootstrap scanner for ACE-Init. Invoked automatically durin the boot sequence Discovery phase. Runs targeted ast-grep queries on ./src/ or ./engineering-state/ to populate ENGINEERING_SNAPSHOT.md in ./global-state/ giving the Orchestrator real code facts before the first SWARM_HANDOFF.json is issued. Without this, GLOBAL_STATE_ANALYSIS is based on directory guesses.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ACE CodeMunch Boot — Engineering-State Bootstrap Scanner
|
|
8
|
+
|
|
9
|
+
**IMPORTANT**: Run this skill BEFORE writing `MASTER_PLAN.md` and BEFORE issuing
|
|
10
|
+
the first `SWARM_HANDOFF.json`. The Orchestrator's three alignment questions —
|
|
11
|
+
*"Does the Code match the Design? Does the Design match the Thesis?"* — cannot be
|
|
12
|
+
answered without structural facts about the codebase. This skill produces those
|
|
13
|
+
facts in under 60 seconds via ast-grep, costing near-zero tokens. A
|
|
14
|
+
`GLOBAL_STATE_ANALYSIS` issued without running this first is operating on fiction.
|
|
15
|
+
|
|
16
|
+
**Do NOT read source files directly.** Every engineering fact must come from an
|
|
17
|
+
ast-grep command or a targeted `find`/`grep` invocation. The Orchestrator is
|
|
18
|
+
a manager, not a code reader.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## When to Invoke
|
|
23
|
+
|
|
24
|
+
| Trigger | Action |
|
|
25
|
+
|---|---|
|
|
26
|
+
| `initiate ACE` boot sequence, Discovery phase | Run **all** steps |
|
|
27
|
+
| Orchestrator detects stale `ENGINEERING_SNAPSHOT.md` (>24h old) | Re-run all steps |
|
|
28
|
+
| ACE-Coders completes a build sprint | Re-run Steps 3 and 4 only (delta scan) |
|
|
29
|
+
| `SWARM_HANDOFF` routing decision requires engineering context | Run Step 4 only |
|
|
30
|
+
| ACE-VOS pivots thesis | Run Step 3 (spec alignment check) only |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Steps
|
|
35
|
+
|
|
36
|
+
### 1. Locate and Profile the Engineering State
|
|
37
|
+
|
|
38
|
+
Detect language, size, and structure before running any pattern queries.
|
|
39
|
+
Write nothing to global-state yet — this step only populates working memory.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Detect primary language(s)
|
|
43
|
+
find ./src . -type f \( -name "*.rs" -o -name "*.py" -o -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.go" \) 2>/dev/null | grep -v ".git\|node_modules\|__pycache__\|target\|dist" | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -10
|
|
44
|
+
|
|
45
|
+
# Count total source files and rough LOC estimate
|
|
46
|
+
find ./src . -type f -name "*.py" -o -name "*.ts" -o -name "*.rs" 2>/dev/null | grep -v ".git\|node_modules\|target" | wc -l
|
|
47
|
+
|
|
48
|
+
# Detect entry point(s)
|
|
49
|
+
find . -name "main.rs" -o -name "main.py" -o -name "index.ts" -o -name "app.py" -o -name "server.py" -o -name "main.go" 2>/dev/null | grep -v ".git\|node_modules\|target" | head -5
|
|
50
|
+
|
|
51
|
+
# Detect build/package manifest
|
|
52
|
+
ls -1 Cargo.toml pyproject.toml setup.py package.json go.mod 2>/dev/null
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Record findings as working variables:
|
|
56
|
+
```
|
|
57
|
+
LANG=<primary language>
|
|
58
|
+
ENTRY=<entry point path>
|
|
59
|
+
FILE_COUNT=<n>
|
|
60
|
+
BUILD_SYSTEM=<cargo|pip|npm|go>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### 2. Rapid Public API Census
|
|
66
|
+
|
|
67
|
+
Extract the public symbol surface. This tells the Orchestrator what the codebase
|
|
68
|
+
currently DOES — the ground truth it needs to compare against the thesis.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# --- Rust ---
|
|
72
|
+
# Public functions
|
|
73
|
+
ast-grep --pattern 'pub fn $NAME($$$)' --lang rust --color never | grep -oP 'pub fn \K\w+' | sort -u >> /tmp/ace_boot_symbols.txt
|
|
74
|
+
|
|
75
|
+
# Public types
|
|
76
|
+
ast-grep --pattern 'pub struct $NAME' --lang rust --color never | grep -oP 'pub struct \K\w+' | sort -u >> /tmp/ace_boot_symbols.txt
|
|
77
|
+
|
|
78
|
+
ast-grep --pattern 'pub enum $NAME' --lang rust --color never | grep -oP 'pub enum \K\w+' | sort -u >> /tmp/ace_boot_symbols.txt
|
|
79
|
+
|
|
80
|
+
# --- Python ---
|
|
81
|
+
ast-grep --pattern 'def $NAME($$$):' --lang python --color never --json | python3 -c "import sys,json; [print(s['metaVariables']['NAME']) for s in json.load(sys.stdin)]" | sort -u >> /tmp/ace_boot_symbols.txt
|
|
82
|
+
|
|
83
|
+
ast-grep --pattern 'class $NAME:' --lang python --color never --json | python3 -c "import sys,json; [print(s['metaVariables']['NAME']) for s in json.load(sys.stdin)]" | sort -u >> /tmp/ace_boot_symbols.txt
|
|
84
|
+
|
|
85
|
+
# --- TypeScript / JavaScript ---
|
|
86
|
+
ast-grep --pattern 'export function $NAME($$$)' --lang ts --color never --json | python3 -c "import sys,json; [print(s['metaVariables']['NAME']) for s in json.load(sys.stdin)]" | sort -u >> /tmp/ace_boot_symbols.txt
|
|
87
|
+
|
|
88
|
+
ast-grep --pattern 'export class $NAME' --lang ts --color never --json | python3 -c "import sys,json; [print(s['metaVariables']['NAME']) for s in json.load(sys.stdin)]" | sort -u >> /tmp/ace_boot_symbols.txt
|
|
89
|
+
|
|
90
|
+
# Total symbol count
|
|
91
|
+
wc -l /tmp/ace_boot_symbols.txt
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 3. Engineering Quality Scan
|
|
97
|
+
|
|
98
|
+
Measures the HEALTH of the engineering state. The Orchestrator needs this to decide
|
|
99
|
+
whether ACE-Coders needs a quality pass before any new feature work.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# --- Test coverage signal ---
|
|
103
|
+
# Rust: count test functions
|
|
104
|
+
ast-grep --pattern '#[test] fn $NAME()' --lang rust --color never | grep -c "fn " || echo "0 rust tests"
|
|
105
|
+
|
|
106
|
+
# Python: count test functions
|
|
107
|
+
ast-grep --pattern 'def test_$NAME($$$):' --lang python --color never | grep -c "def " || echo "0 python tests"
|
|
108
|
+
|
|
109
|
+
# TypeScript: count test blocks
|
|
110
|
+
ast-grep --pattern "it('$DESC', $$$)" --lang ts --color never | grep -c "it(" || echo "0 ts tests"
|
|
111
|
+
ast-grep --pattern 'test("$DESC", $$$)' --lang ts --color never | grep -c "test(" || echo "0 ts tests"
|
|
112
|
+
|
|
113
|
+
# --- Completion signal: stubs and TODOs ---
|
|
114
|
+
# Rust: unimplemented/todo macros (hard stubs)
|
|
115
|
+
ast-grep --pattern 'unimplemented!()' --lang rust --color never | grep -c "unimplemented"
|
|
116
|
+
ast-grep --pattern 'todo!()' --lang rust --color never | grep -c "todo"
|
|
117
|
+
|
|
118
|
+
# Python: NotImplemented raises
|
|
119
|
+
ast-grep --pattern 'raise NotImplementedError' --lang python --color never | grep -c "raise"
|
|
120
|
+
|
|
121
|
+
# Cross-language: comment-level TODOs (soft stubs)
|
|
122
|
+
grep -rn "TODO\|FIXME\|HACK\|XXX" --include="*.rs" --include="*.py" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.go" . 2>/dev/null | grep -v ".git\|node_modules\|target" | wc -l
|
|
123
|
+
|
|
124
|
+
# --- Risk signal: unsafe code, panics ---
|
|
125
|
+
# Rust: unsafe blocks (correctness risk surface)
|
|
126
|
+
ast-grep --pattern 'unsafe { $$$ }' --lang rust --color never | grep -c "unsafe"
|
|
127
|
+
|
|
128
|
+
# Rust: unwrap() calls (panic risk surface)
|
|
129
|
+
ast-grep --pattern '$EXPR.unwrap()' --lang rust --color never | grep -c "unwrap"
|
|
130
|
+
|
|
131
|
+
# --- Architecture signal: async vs sync ---
|
|
132
|
+
ast-grep --pattern 'async fn $NAME($$$)' --lang rust --color never | grep -c "async"
|
|
133
|
+
ast-grep --pattern 'async def $NAME($$$):' --lang python --color never | grep -c "async"
|
|
134
|
+
ast-grep --pattern 'async function $NAME($$$)' --lang ts --color never | grep -c "async"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### 4. Spec Alignment Check
|
|
140
|
+
|
|
141
|
+
Compare what the code DOES against what the thesis/MVP spec CLAIMS it should do.
|
|
142
|
+
This is the Orchestrator's core alignment question answered with evidence.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Only run if venture-state MVP spec exists
|
|
146
|
+
if [ -f "./venture-state/MVP_SPEC.md" ]; then
|
|
147
|
+
|
|
148
|
+
# Extract feature keywords from MVP spec (nouns from headings and bullets)
|
|
149
|
+
grep -oP '(?<=^#{1,3} ).*|(?<=^- ).*' ./venture-state/MVP_SPEC.md | tr '[:upper:]' '[:lower:]' | tr -cs 'a-z0-9_' '
|
|
150
|
+
' | sort -u | grep -v "^.$\|^..$" > /tmp/ace_spec_keywords.txt
|
|
151
|
+
|
|
152
|
+
# Check which spec keywords appear in engineering symbol names
|
|
153
|
+
comm -12 <(sort /tmp/ace_boot_symbols.txt | tr '[:upper:]' '[:lower:]') <(sort /tmp/ace_spec_keywords.txt) > /tmp/ace_covered_features.txt
|
|
154
|
+
|
|
155
|
+
# Keywords in spec NOT found in code (unbuilt features)
|
|
156
|
+
comm -23 <(sort /tmp/ace_spec_keywords.txt) <(sort /tmp/ace_boot_symbols.txt | tr '[:upper:]' '[:lower:]') > /tmp/ace_missing_features.txt
|
|
157
|
+
|
|
158
|
+
echo "=== COVERED (spec keyword found in code) ==="
|
|
159
|
+
cat /tmp/ace_covered_features.txt | head -20
|
|
160
|
+
|
|
161
|
+
echo "=== MISSING (spec keyword NOT found in code) ==="
|
|
162
|
+
cat /tmp/ace_missing_features.txt | head -20
|
|
163
|
+
|
|
164
|
+
fi
|
|
165
|
+
|
|
166
|
+
# Check for any existing engineering-state STATUS.md
|
|
167
|
+
if [ -f "./engineering-state/STATUS.md" ]; then
|
|
168
|
+
head -30 ./engineering-state/STATUS.md
|
|
169
|
+
fi
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### 5. Write ENGINEERING_SNAPSHOT.md
|
|
175
|
+
|
|
176
|
+
Crystallise all findings into a single artifact that the Orchestrator reads during
|
|
177
|
+
`GLOBAL_STATE_ANALYSIS`. This file becomes the engineering column of `MASTER_PLAN.md`.
|
|
178
|
+
|
|
179
|
+
Write to: `./global-state/ENGINEERING_SNAPSHOT.md`
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
# ENGINEERING_SNAPSHOT.md
|
|
183
|
+
Generated: <ISO8601 timestamp>
|
|
184
|
+
Scanned By: ace-codemunch-boot skill
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Profile
|
|
189
|
+
- **Primary Language:** <lang>
|
|
190
|
+
- **Build System:** <cargo | pip | npm | go | unknown>
|
|
191
|
+
- **Entry Point:** <path>
|
|
192
|
+
- **Source Files:** <n>
|
|
193
|
+
- **Public Symbols:** <n> (functions, classes, types)
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Quality Signals
|
|
198
|
+
| Signal | Value | Risk Level |
|
|
199
|
+
|---|---|---|
|
|
200
|
+
| Test functions found | <n> | 🟢 / 🟡 / 🔴 |
|
|
201
|
+
| Hard stubs (unimplemented!/todo!) | <n> | 🟢 / 🟡 / 🔴 |
|
|
202
|
+
| Soft stubs (TODO/FIXME comments) | <n> | 🟢 / 🟡 / 🔴 |
|
|
203
|
+
| Unsafe blocks (Rust) / unwrap() | <n> | 🟢 / 🟡 / 🔴 |
|
|
204
|
+
| Concurrency model | async / sync / mixed | — |
|
|
205
|
+
|
|
206
|
+
Risk thresholds: 🟢 = low (0–5), 🟡 = medium (6–20), 🔴 = high (>20)
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Spec Alignment (vs venture-state/MVP_SPEC.md)
|
|
211
|
+
- **Covered features** (keyword found in code): <n> — see /tmp/ace_covered_features.txt
|
|
212
|
+
- **Missing features** (keyword NOT found in code): <n> — see /tmp/ace_missing_features.txt
|
|
213
|
+
|
|
214
|
+
### Top missing features (unbuilt spec items):
|
|
215
|
+
- <keyword 1>
|
|
216
|
+
- <keyword 2>
|
|
217
|
+
- <keyword 3>
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Routing Signals for Orchestrator
|
|
222
|
+
|
|
223
|
+
<!-- FILL THESE IN based on scan results above -->
|
|
224
|
+
<!-- These are the Orchestrator's inputs to SWARM_HANDOFF routing logic -->
|
|
225
|
+
|
|
226
|
+
CODERS_NEEDED_FOR:
|
|
227
|
+
- <stub count > 10 → "Coders must clear stubs before new features">
|
|
228
|
+
- <test count < 5 → "Coders must write baseline tests first">
|
|
229
|
+
- <missing spec features → list top 3>
|
|
230
|
+
|
|
231
|
+
VOS_NEEDED_FOR:
|
|
232
|
+
- <missing features count > 10 → "MVP scope may be too large; VOS must re-triage">
|
|
233
|
+
- <0 spec file found → "No thesis artifact; VOS must run genesis pipeline first">
|
|
234
|
+
|
|
235
|
+
UI_NEEDED_FOR:
|
|
236
|
+
- <no brand-state/ → "UI has not defined copy or flows yet">
|
|
237
|
+
|
|
238
|
+
PIPELINE_RECOMMENDATION: <genesis | pivot | ship_it>
|
|
239
|
+
Reason: <one sentence — e.g., "Code has 40% spec coverage and 3 stubs; pivot pipeline to clear debt first">
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Evidence Log
|
|
244
|
+
All ast-grep commands that produced this snapshot are appended below.
|
|
245
|
+
<paste raw command outputs here>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
### 6. Inject into MASTER_PLAN.md and Route
|
|
251
|
+
|
|
252
|
+
After `ENGINEERING_SNAPSHOT.md` is written, the Orchestrator uses it to:
|
|
253
|
+
|
|
254
|
+
1. **Populate the Engineering column** of `MASTER_PLAN.md`:
|
|
255
|
+
```markdown
|
|
256
|
+
## Engineering State (from ENGINEERING_SNAPSHOT.md, <date>)
|
|
257
|
+
- Symbols: <n> | Tests: <n> | Stubs: <n> | Spec coverage: <n>%
|
|
258
|
+
- Status: <one sentence from routing signals>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
2. **Check alignment** across all three pillars before routing:
|
|
262
|
+
```
|
|
263
|
+
CODE alignment check:
|
|
264
|
+
venture-state/MVP_SPEC.md exists? → YES / NO
|
|
265
|
+
brand-state/DESIGN_SYSTEM.md exists? → YES / NO
|
|
266
|
+
MISSING FEATURES in snapshot > 0? → route to Coders or VOS
|
|
267
|
+
STUB COUNT > 10? → route to Coders (debt-clear sprint)
|
|
268
|
+
NO TESTS? → route to Coders (baseline test sprint)
|
|
269
|
+
NO MVP SPEC? → route to VOS (genesis pipeline)
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
3. **Emit the first SWARM_HANDOFF.json** with engineering context attached:
|
|
273
|
+
```json
|
|
274
|
+
{
|
|
275
|
+
"router": {
|
|
276
|
+
"from": "ace-init",
|
|
277
|
+
"via": "ace-orchestrator",
|
|
278
|
+
"to": "<ace-vos | ace-ui | ace-coders>"
|
|
279
|
+
},
|
|
280
|
+
"context": {
|
|
281
|
+
"business_requirement": "./venture-state/MVP_SPEC.md",
|
|
282
|
+
"engineering_snapshot": "./global-state/ENGINEERING_SNAPSHOT.md",
|
|
283
|
+
"directive": "<derived from PIPELINE_RECOMMENDATION in snapshot>",
|
|
284
|
+
"engineering_signals": {
|
|
285
|
+
"symbol_count": "<n>",
|
|
286
|
+
"test_count": "<n>",
|
|
287
|
+
"stub_count": "<n>",
|
|
288
|
+
"missing_features": ["<f1>", "<f2>", "<f3>"],
|
|
289
|
+
"pipeline": "<genesis | pivot | ship_it>"
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Quick Reference: Signal → Pipeline Mapping
|
|
298
|
+
|
|
299
|
+
| Engineering State | Venture State | Recommended Pipeline |
|
|
300
|
+
|---|---|---|
|
|
301
|
+
| No code yet | No MVP spec | `genesis` — VOS → UI → Coders |
|
|
302
|
+
| Code exists, no tests, many stubs | MVP spec exists | `pivot` — Coders (debt clear) → Coders (build) |
|
|
303
|
+
| Code exists, tests passing | MVP spec exists | `ship_it` — UI critique → Coders (QA) |
|
|
304
|
+
| Code exists, stubs only | No MVP spec | `genesis` — VOS must define scope first |
|
|
305
|
+
| Code complete, spec coverage > 80% | MVP spec complete | `ship_it` — UI polish then deploy |
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## Activation
|
|
310
|
+
|
|
311
|
+
This skill is called automatically during ACE boot. It can also be called explicitly:
|
|
312
|
+
|
|
313
|
+
**`ACE --mode boot --write-to ./global-state/ENGINEERING_SNAPSHOT.md`**
|
|
314
|
+
|
|
315
|
+
Or manually triggered by the Orchestrator at any time with:
|
|
316
|
+
|
|
317
|
+
**`ACE --mode delta`** — re-runs Steps 3 and 4 only (quality + alignment, no full census)
|