feat(workspace): point planning guardrails at omo

This commit is contained in:
YeonGyu-Kim
2026-05-16 17:41:35 +09:00
parent a86221b1a9
commit 36e373cdbb
48 changed files with 244 additions and 244 deletions
+1 -1
View File
@@ -139,7 +139,7 @@ export const atlasPromptMetadata: AgentPromptMetadata = {
},
],
useWhen: [
"User provides a todo list path (.sisyphus/plans/{name}.md)",
"User provides a todo list path (.omo/plans/{name}.md)",
"Multiple tasks need to be completed in sequence or parallel",
"Work requires coordination across multiple specialized agents",
],
+5 -5
View File
@@ -57,16 +57,16 @@ describe("Atlas prompts anti-duplication coverage", () => {
describe("Atlas prompts plan path consistency", () => {
for (const [name, prompt] of ALL_VARIANTS) {
test(`${name} variant should use .sisyphus/plans/{plan-name}.md path`, () => {
expect(prompt).toContain(".sisyphus/plans/{plan-name}.md")
expect(prompt).not.toContain(".sisyphus/tasks/{plan-name}.yaml")
expect(prompt).not.toContain(".sisyphus/tasks/")
test(`${name} variant should use .omo/plans/{plan-name}.md path`, () => {
expect(prompt).toContain(".omo/plans/{plan-name}.md")
expect(prompt).not.toContain(".omo/tasks/{plan-name}.yaml")
expect(prompt).not.toContain(".omo/tasks/")
})
}
test("all variants should read plan file after verification", () => {
for (const [, prompt] of ALL_VARIANTS) {
expect(prompt).toMatch(/read[\s\S]*?\.sisyphus\/plans\//i)
expect(prompt).toMatch(/read[\s\S]*?\.omo\/plans\//i)
}
})
+7 -7
View File
@@ -43,12 +43,12 @@ TASK ANALYSIS:
## Step 2: Initialize Notepad
\`\`\`bash
mkdir -p .sisyphus/notepads/{plan-name}
mkdir -p .omo/notepads/{plan-name}
\`\`\`
Structure:
\`\`\`
.sisyphus/notepads/{plan-name}/
.omo/notepads/{plan-name}/
learnings.md # Conventions, patterns
decisions.md # Architectural choices
issues.md # Problems, gotchas
@@ -67,9 +67,9 @@ Sequential tasks are dispatched only after their blocker resolves and only when
**MANDATORY: Read notepad first**
\`\`\`
glob(".sisyphus/notepads/{plan-name}/*.md")
Read(".sisyphus/notepads/{plan-name}/learnings.md")
Read(".sisyphus/notepads/{plan-name}/issues.md")
glob(".omo/notepads/{plan-name}/*.md")
Read(".omo/notepads/{plan-name}/learnings.md")
Read(".omo/notepads/{plan-name}/issues.md")
\`\`\`
Extract wisdom and include in the delegation prompt under "Inherited Wisdom".
@@ -121,7 +121,7 @@ After EVERY delegation, complete ALL of these steps - no shortcuts:
After verification, READ the plan file - every time:
\`\`\`
Read(".sisyphus/plans/{plan-name}.md")
Read(".omo/plans/{plan-name}.md")
\`\`\`
Count remaining **top-level task** checkboxes. Ignore nested verification/evidence checkboxes. This is your ground truth.
@@ -213,7 +213,7 @@ export const DEFAULT_ATLAS_BOUNDARIES = `<boundaries>
- Use lsp_diagnostics, grep, glob
- Manage todos
- Coordinate and verify
- **EDIT \`.sisyphus/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
- **EDIT \`.omo/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
**YOU DELEGATE**:
- All code writing/editing
+5 -5
View File
@@ -68,7 +68,7 @@ TASK ANALYSIS:
## Step 2: Initialize Notepad
\`\`\`bash
mkdir -p .sisyphus/notepads/{plan-name}
mkdir -p .omo/notepads/{plan-name}
\`\`\`
Structure: learnings.md, decisions.md, issues.md, problems.md
@@ -81,8 +81,8 @@ Structure: learnings.md, decisions.md, issues.md, problems.md
### 3.2 Pre-Delegation (MANDATORY)
\`\`\`
Read(".sisyphus/notepads/{plan-name}/learnings.md")
Read(".sisyphus/notepads/{plan-name}/issues.md")
Read(".omo/notepads/{plan-name}/learnings.md")
Read(".omo/notepads/{plan-name}/issues.md")
\`\`\`
Extract wisdom → include in prompt.
@@ -158,7 +158,7 @@ ALL three must be YES. "Probably" = NO. "I think so" = NO.
**After gate passes:** Check boulder state:
\`\`\`
Read(".sisyphus/plans/{plan-name}.md")
Read(".omo/plans/{plan-name}.md")
\`\`\`
Count remaining **top-level task** checkboxes. Ignore nested verification/evidence checkboxes.
@@ -236,7 +236,7 @@ export const GEMINI_ATLAS_BOUNDARIES = `<boundaries>
- Use lsp_diagnostics, grep, glob
- Manage todos
- Coordinate and verify
- **EDIT \`.sisyphus/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
- **EDIT \`.omo/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
**YOU DELEGATE (NO EXCEPTIONS):**
- All code writing/editing
+5 -5
View File
@@ -52,7 +52,7 @@ TASK ANALYSIS:
## Step 2: Initialize Notepad
\`\`\`bash
mkdir -p .sisyphus/notepads/{plan-name}
mkdir -p .omo/notepads/{plan-name}
\`\`\`
Files: learnings.md, decisions.md, issues.md, problems.md.
@@ -65,8 +65,8 @@ Per the parallel-by-default mandate above: every task without a NAMED blocker go
### 3.2 Pre-Delegation
\`\`\`
Read(".sisyphus/notepads/{plan-name}/learnings.md")
Read(".sisyphus/notepads/{plan-name}/issues.md")
Read(".omo/notepads/{plan-name}/learnings.md")
Read(".omo/notepads/{plan-name}/issues.md")
\`\`\`
Extract wisdom → include in EVERY dispatched prompt under "Inherited Wisdom".
@@ -121,7 +121,7 @@ ALL three YES → proceed and mark the checkbox. Any "unsure" = no.
After the gate passes, READ the plan file:
\`\`\`
Read(".sisyphus/plans/{plan-name}.md")
Read(".omo/plans/{plan-name}.md")
\`\`\`
Count remaining **top-level task** checkboxes (ignore nested verification/evidence checkboxes). Ground truth.
@@ -175,7 +175,7 @@ export const GPT_ATLAS_BOUNDARIES = `<boundaries>
- Use lsp_diagnostics, grep, glob
- Manage todos
- Coordinate and verify
- **EDIT \`.sisyphus/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
- **EDIT \`.omo/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
**YOU DELEGATE**:
- All code writing/editing
+5 -5
View File
@@ -58,7 +58,7 @@ TASK ANALYSIS:
## Step 2: Initialize Notepad
\`\`\`bash
mkdir -p .sisyphus/notepads/{plan-name}
mkdir -p .omo/notepads/{plan-name}
\`\`\`
Files: learnings.md, decisions.md, issues.md, problems.md.
@@ -74,8 +74,8 @@ Make the parallel/sequential call ONCE per batch and execute. Do not reopen the
### 3.2 Before Each Delegation
\`\`\`
Read(".sisyphus/notepads/{plan-name}/learnings.md")
Read(".sisyphus/notepads/{plan-name}/issues.md")
Read(".omo/notepads/{plan-name}/learnings.md")
Read(".omo/notepads/{plan-name}/issues.md")
\`\`\`
Cap notepad reads at 2 files per dispatch (the two above). Include extracted wisdom in EVERY dispatched prompt under "Inherited Wisdom".
@@ -121,7 +121,7 @@ You are the QA gate. Subagents lie. Run the 4 phases below in order. Stop at the
After verification, READ the plan file:
\`\`\`
Read(".sisyphus/plans/{plan-name}.md")
Read(".omo/plans/{plan-name}.md")
\`\`\`
Count remaining **top-level task** checkboxes. Ignore nested verification/evidence checkboxes. Ground truth.
@@ -184,7 +184,7 @@ export const KIMI_ATLAS_BOUNDARIES = `<boundaries>
- Use lsp_diagnostics, grep, glob
- Manage todos
- Coordinate and verify
- **EDIT \`.sisyphus/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
- **EDIT \`.omo/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
**YOU DELEGATE**:
- All code writing/editing
+6 -6
View File
@@ -51,7 +51,7 @@ TASK ANALYSIS:
## Step 2: Initialize Notepad
\`\`\`bash
mkdir -p .sisyphus/notepads/{plan-name}
mkdir -p .omo/notepads/{plan-name}
\`\`\`
Files: learnings.md, decisions.md, issues.md, problems.md.
@@ -68,9 +68,9 @@ Per the parallel-by-default mandate above: every task without a NAMED blocking d
**MANDATORY: Read notepad first** (apply to every dispatch in the batch, not just the first):
\`\`\`
glob(".sisyphus/notepads/{plan-name}/*.md")
Read(".sisyphus/notepads/{plan-name}/learnings.md")
Read(".sisyphus/notepads/{plan-name}/issues.md")
glob(".omo/notepads/{plan-name}/*.md")
Read(".omo/notepads/{plan-name}/learnings.md")
Read(".omo/notepads/{plan-name}/issues.md")
\`\`\`
Extract wisdom; include in EVERY dispatched prompt under "Inherited Wisdom".
@@ -117,7 +117,7 @@ You are the QA gate. Subagents lie. Run the FULL protocol on EACH completed task
After verification, READ the plan file - every time, every task:
\`\`\`
Read(".sisyphus/plans/{plan-name}.md")
Read(".omo/plans/{plan-name}.md")
\`\`\`
Count remaining **top-level task** checkboxes. Ignore nested verification/evidence checkboxes. This is your ground truth.
@@ -200,7 +200,7 @@ export const OPUS_47_ATLAS_BOUNDARIES = `<boundaries>
- Use lsp_diagnostics, grep, glob
- Manage todos
- Coordinate and verify
- **EDIT \`.sisyphus/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
- **EDIT \`.omo/plans/*.md\` to change \`- [ ]\` to \`- [x]\` after verified task completion**
**YOU DELEGATE**:
- All code writing/editing
@@ -25,9 +25,9 @@ describe("ATLAS prompt checkbox enforcement", () => {
expect(lowerPrompt).toMatch(/edit.*checkbox|checkbox.*edit/)
})
test("boundaries should include exception for editing .sisyphus/plans/*.md checkboxes", () => {
test("boundaries should include exception for editing .omo/plans/*.md checkboxes", () => {
const lowerPrompt = prompt.toLowerCase()
expect(lowerPrompt).toMatch(/\.sisyphus\/plans\/\*\.md/)
expect(lowerPrompt).toMatch(/\.omo\/plans\/\*\.md/)
expect(lowerPrompt).toMatch(/checkbox/)
})
@@ -41,8 +41,8 @@ describe("ATLAS prompt checkbox enforcement", () => {
expect(lowerPrompt).toMatch(/must not.*call.*new.*task/)
})
test("prompt should NOT reference .sisyphus/tasks/", () => {
expect(prompt).not.toMatch(/\.sisyphus\/tasks\//)
test("prompt should NOT reference .omo/tasks/", () => {
expect(prompt).not.toMatch(/\.omo\/tasks\//)
})
})
}
+6 -6
View File
@@ -72,7 +72,7 @@ Every \`task()\` prompt MUST include ALL 6 sections:
## 6. CONTEXT
### Notepad Paths
- READ: .sisyphus/notepads/{plan-name}/*.md
- READ: .omo/notepads/{plan-name}/*.md
- WRITE: Append to appropriate category
### Inherited Wisdom
@@ -169,8 +169,8 @@ const ATLAS_NOTEPAD_PROTOCOL = `<notepad_protocol>
\`\`\`
**Path convention**:
- Plan: \`.sisyphus/plans/{plan-name}.md\` (you may EDIT to mark checkboxes)
- Notepad: \`.sisyphus/notepads/{plan-name}/\` (READ/APPEND)
- Plan: \`.omo/plans/{plan-name}.md\` (you may EDIT to mark checkboxes)
- Notepad: \`.omo/notepads/{plan-name}/\` (READ/APPEND)
</notepad_protocol>`
const ATLAS_POST_DELEGATION_RULE = `<post_delegation_rule>
@@ -178,9 +178,9 @@ const ATLAS_POST_DELEGATION_RULE = `<post_delegation_rule>
After EVERY verified task() completion, you MUST:
1. **EDIT the plan checkbox**: Change \`- [ ]\` to \`- [x]\` for the completed task in \`.sisyphus/plans/{plan-name}.md\`
1. **EDIT the plan checkbox**: Change \`- [ ]\` to \`- [x]\` for the completed task in \`.omo/plans/{plan-name}.md\`
2. **READ the plan to confirm**: Read \`.sisyphus/plans/{plan-name}.md\` and verify the checkbox count changed (fewer \`- [ ]\` remaining)
2. **READ the plan to confirm**: Read \`.omo/plans/{plan-name}.md\` and verify the checkbox count changed (fewer \`- [ ]\` remaining)
3. **MUST NOT call a new task()** before completing steps 1 and 2 above
@@ -210,7 +210,7 @@ PER-TASK ELAPSED:
FINAL WAVE: F1 [...] | F2 [...] | F3 [...] | F4 [...]
\`\`\`
2. Confirm via your tools that the active work in \`.sisyphus/boulder.json\` now has \`status: "completed"\` and \`elapsed_ms\` populated. The hook calls \`completeBoulder()\` for you; you are reading state, not writing it.
2. Confirm via your tools that the active work in \`.omo/boulder.json\` now has \`status: "completed"\` and \`elapsed_ms\` populated. The hook calls \`completeBoulder()\` for you; you are reading state, not writing it.
3. Mark the \`pass-final-wave\` todo as \`completed\` only after the Final Verification Wave reviewers all APPROVE. If the wave has not run yet, run it now in parallel; the boulder-complete nudge does not bypass it.