gm-oc 2.0.398 → 2.0.400

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-oc",
3
- "version": "2.0.398",
3
+ "version": "2.0.400",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -31,9 +31,10 @@ You are in the **VERIFY → COMPLETE** phase. Files are written. Prove the whole
31
31
  - `witnessed_e2e=UNKNOWN` until real end-to-end run produces witnessed output
32
32
  - `git_clean=UNKNOWN` until `exec:bash\ngit status --porcelain` returns empty
33
33
  - `git_pushed=UNKNOWN` until `git log origin/main..HEAD --oneline` returns empty
34
+ - `ci_passed=UNKNOWN` until all GitHub Actions runs triggered by the push reach `conclusion: success`
34
35
  - `prd_empty=UNKNOWN` until .prd file is deleted (not just empty — file must not exist)
35
36
 
36
- All four must resolve to KNOWN before COMPLETE. Any UNKNOWN = absolute barrier.
37
+ All five must resolve to KNOWN before COMPLETE. Any UNKNOWN = absolute barrier.
37
38
 
38
39
  ## END-TO-END VERIFICATION
39
40
 
@@ -84,9 +85,42 @@ git log origin/main..HEAD --oneline
84
85
  ```
85
86
  Must return empty. If not: stage → commit → push → re-verify. Local commit without push ≠ complete.
86
87
 
88
+ ## CI ENFORCEMENT
89
+
90
+ After push, monitor all triggered GitHub Actions runs until they complete:
91
+
92
+ 1. List runs triggered by the push:
93
+ ```
94
+ exec:bash
95
+ gh run list --limit 5 --json databaseId,name,status,conclusion,headBranch
96
+ ```
97
+
98
+ 2. For each run that is `in_progress` or `queued`, poll until it completes:
99
+ ```
100
+ exec:bash
101
+ gh run watch <run_id> --exit-status
102
+ ```
103
+
104
+ 3. If a run fails, view the logs to diagnose:
105
+ ```
106
+ exec:bash
107
+ gh run view <run_id> --log-failed
108
+ ```
109
+
110
+ 4. Fix the root cause → snake to the appropriate phase (emit for file issues, execute for logic issues, planning for new unknowns) → re-push → re-monitor.
111
+
112
+ 5. All runs must reach `conclusion: success` before advancing. A failed CI run is a KNOWN mutable that blocks completion — never ignore it.
113
+
114
+ **Cascade awareness**: pushes to this repo may trigger downstream workflows (see CLAUDE.md Rust Binary Update Pipeline). After local CI passes, check downstream repos for triggered runs:
115
+ ```
116
+ exec:bash
117
+ gh run list --repo AnEntrypoint/<downstream-repo> --limit 3 --json databaseId,name,status,conclusion
118
+ ```
119
+ Monitor any cascade runs the same way — poll, diagnose failures, fix if the cause is in this repo.
120
+
87
121
  ## COMPLETION DEFINITION
88
122
 
89
- All of: witnessed end-to-end output | all failure paths exercised | .prd empty | git clean and pushed | `user_steps_remaining=0`
123
+ All of: witnessed end-to-end output | all failure paths exercised | .prd empty | git clean and pushed | all CI runs green | `user_steps_remaining=0`
90
124
 
91
125
  ## DO NOT STOP
92
126
 
@@ -94,7 +128,7 @@ After end-to-end verification passes: read .prd from disk. If any items remain,
94
128
 
95
129
  ## CONSTRAINTS
96
130
 
97
- **Never**: claim done without witnessed output | uncommitted changes | unpushed commits | .prd items remaining | stop at first green | absorb surprises silently | respond to user while .prd has items
131
+ **Never**: claim done without witnessed output | uncommitted changes | unpushed commits | failed CI runs | .prd items remaining | stop at first green | absorb surprises silently | respond to user while .prd has items
98
132
 
99
133
  **Always**: triage failure before snaking | witness end-to-end | snake to planning on any new unknown | enumerate remaining after every success | check .prd after every verification pass
100
134