Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .agents/skills/icm-cctv-ops/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: icm-cctv-ops
description: ICM-CCTV visualization projection for ops dashboards. Load on Stepie 2087 step 10023.
---

# Skill: icm-cctv-ops

Emit lane counts + PR rows as JSON. No secrets. Do not reorder primary Stepie goal 2149.

```text
python3 -m ml.pipelines.cli cctv
```

Contract: `docs/ops/ICM-CCTV.md`
Session 2026-09-25 14:10 PDT. Live master `a3423d97`.
Agent-Identity: Grok (Administrator)
1 change: 1 addition & 0 deletions .agents/skills/icm-cctv-ops/references/schema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Schema: `docs/schemas/icm-cctv.json`. Producer: `ml.pipelines.viz.cctv`.
40 changes: 40 additions & 0 deletions .agents/skills/ml-pipeline-ops/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: ml-pipeline-ops
description: Keep-alive ML pipeline DAG for termux-monorepo. Load on Issue #175 ML lanes. Never wholesale-merge mega ML PRs.
---

# Skill: ml-pipeline-ops

Session 2026-09-25 14:10 PDT. Live master `a3423d97` after #836 (lane vocab v2).
Keep-alive child rebases here; #817 / #787 / #746 / #682 SUPERSEDE-or-EXTRACT.

## Hard rules

1. Extract-only for mega ML PRs. Slim tree is `ml/pipelines/`.
2. Dual gates before promote: hygiene+portability + agentic termux smoke. Bind the named jobs, not combined status.
3. No secrets, no Class 3/4 artifacts, no GPU runners.
4. GitLab / Vercel hobby rate-limit are **non-gate** (#772).
5. Dirty + files>40 + minesweeper overlap → EXTRACT, never wholesale.
6. `master_staging_base` (#48, #788) never retarget to master.
7. Do **not** restamp `docs/ops/LANE-MATRIX.md` (policy SSOT). Live board is generated.
8. Do **not** pulse-comment Issue #175. Edit the issue body only when intent changes.
9. Lane vocab v2: EXTRACT | CANDIDATE | NEED_EVIDENCE | SUPERSEDE. HOLD/WAIT/OBSERVE are invalid parking.

## Commands

```text
python3 -m ml.pipelines.cli status
python3 -m ml.pipelines.cli lanes
python3 -m ml.pipelines.cli run
python3 -m ml.pipelines.cli cctv
python3 -m ml.pipelines.cli matrix
python3 -m ml.pipelines.cli explain 682
python3 -m ml.pipelines.cli gate 48
python3 -m unittest discover -s ml/pipelines -p 'test_*.py'
```

## Cycle

RECON → INGEST → FEATURES → TRAIN → EVALUATE → (EXTRACT|CANDIDATE|NEED_EVIDENCE|SUPERSEDE) → MONITOR

Operator ACTIVE. Agent-Identity: Grok (Administrator)
3 changes: 3 additions & 0 deletions .agents/skills/ml-pipeline-ops/references/ates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# ATES

#841 promoted runtime evidence as the measurement spine. Keep-alive observes; it does not replace ATES.
8 changes: 8 additions & 0 deletions .agents/skills/ml-pipeline-ops/references/dual-gate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Dual-gate (promote authority)

1. `hygiene + portability gate` / `repo gate` SUCCESS on **this** SHA
2. `agentic termux smoke` / `termux smoke` SUCCESS on **this** SHA
3. Vercel rate-limits are **non-gate** (#772)
4. Copilot / CodeRabbit / Qodo / Devin = advisory only
5. Dual-gate SUCCESS on an older head does not authorize a newer SHA
6. Combined commit status is not dual-gate; bind the named jobs
7 changes: 7 additions & 0 deletions .agents/skills/ml-pipeline-ops/references/minesweeper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Minesweeper

Concurrent agents (Jules, Sentinel, Bolt, Devin, Copilot) open overlapping PRs.

- Do not overwrite a peer's branch.
- Bot author + files>40 → EXTRACT, never wholesale merge.
- Classify with `ml.pipelines.lanes.minesweeper_rules`.
4 changes: 4 additions & 0 deletions .agents/skills/ml-pipeline-ops/references/promote.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Promote

ALLOW only for CANDIDATE + dual-gate SUCCESS + mergeable (not dirty).
EXTRACT never auto-promotes. NEED_EVIDENCE waits for rebase/checks.
10 changes: 10 additions & 0 deletions .agents/skills/ml-pipeline-ops/references/vocab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Lane vocabulary v2

| Lane | Meaning |
|------|---------|
| EXTRACT | Re-cut onto live master; do not wholesale-merge |
| CANDIDATE | On master; dual-gate may promote if green |
| NEED_EVIDENCE | Wrong-base / draft / dirty |
| SUPERSEDE | Session pulse, bot-only, or ancient no-auto |

HOLD / WAIT / OBSERVE are invalid parking (#836).
32 changes: 32 additions & 0 deletions .github/workflows/ml-pipelines-keepalive.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: ml pipelines keep-alive

on:
pull_request:
paths:
- "ml/pipelines/**"
- ".github/workflows/ml-pipelines-keepalive.yml"
push:
branches: [master]
paths:
- "ml/pipelines/**"
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ml-keepalive-${{ github.ref }}
cancel-in-progress: true

jobs:
unittest:
name: keep-alive unit tests
runs-on: ubuntu-latest
timeout-minutes: 8
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: false
- name: stdlib unittest
run: python3 -m unittest discover -s ml/pipelines -p "test_*.py"
4 changes: 3 additions & 1 deletion SKILLS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
| **Primary agent entry (BIUDL)** | [`CLAUDE.md`](CLAUDE.md) |
| Adaptive wait / feedback | `.agents/skills/adaptive-feedback-cycle/SKILL.md` |
| Admin ops | `.agents/skills/evidence-led-monorepo-ops/SKILL.md` |
| ML keep-alive | `.agents/skills/ml-pipeline-ops/SKILL.md` |
| ICM-CCTV projection | `.agents/skills/icm-cctv-ops/SKILL.md` |
| External contribute (help-wanted) | `.agents/skills/help-wanted-lane/SKILL.md` |
| Production WAIT → VALIDATE | `.github/skills/production-reconciliation/SKILL.md` |

Expand All @@ -29,7 +31,7 @@ Every skill directory must contain a `SKILL.md`. Inventory lists **all** of them
| Role | Load first |
|------|------------|
| Collaborator | `adaptive-feedback-cycle` → dual-gate |
| Admin / Grok | `evidence-led-monorepo-ops` + `adaptive-wait` |
| Admin / Grok | `evidence-led-monorepo-ops` + `adaptive-wait` + `ml-pipeline-ops` |
| Oversight / external PR | `help-wanted-lane` |
| Evaluation / DOE | `multivariate-doe` + `blind-agent-evaluation` |

Expand Down
5 changes: 5 additions & 0 deletions docs/icm/cards/icm-cctv-10023.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Card: icm-cctv-10023

Stepie 2087 step 10023 visualization surface.

`ml/pipelines/viz` emits JSON for dashboards. Does not steal focus from primary goal 2149.
6 changes: 6 additions & 0 deletions docs/icm/cards/issue-175-operator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Card: issue-175-operator

Priority hub. Dual-gate SSOT. Vercel #772 is non-gate.

Do not YOLO merge. Do not pulse-comment. Edit the issue body when intent changes.
Live board: `docs/ops/generated/lane-matrix-status.md`.
5 changes: 5 additions & 0 deletions docs/icm/cards/lane-vocab-v2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Card: lane-vocab-v2

#836 retired HOLD/WAIT/OBSERVE parking.

Sweep + keep-alive DAG share EXTRACT | CANDIDATE | NEED_EVIDENCE | SUPERSEDE.
9 changes: 9 additions & 0 deletions docs/icm/cards/mlp-keep-001.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Card: MLP-KEEP-001

Keep-alive ML DAG under `ml/pipelines/`.

- Extract-only vs #682 / #432 / #549 / #601 / #746 / #787 / #817
- Dual-gate before promote
- MoneyBall scorer is transparent weights, not a black box
- Lane short-circuit: EXTRACT / CANDIDATE / NEED_EVIDENCE / SUPERSEDE before PROMOTE
- Session 2026-09-25 14:10 PDT tip `a3423d97`
3 changes: 3 additions & 0 deletions docs/icm/cards/mlp-keep-002.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Card: MLP-KEEP-002

ICM-CCTV JSON projection. No secrets. `python3 -m ml.pipelines.cli cctv`.
3 changes: 3 additions & 0 deletions docs/icm/cards/mlp-keep-003.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Card: MLP-KEEP-003

Minesweeper classifiers. Jules/Sentinel/Bolt EXTRACT. Do not overwrite peer branches.
3 changes: 3 additions & 0 deletions docs/icm/cards/mlp-keep-005.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Card: MLP-KEEP-005

Lane vocab v2 alignment with #836.
6 changes: 6 additions & 0 deletions docs/icm/cards/session-ssot-pulse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Card: session-ssot-pulse

`docs/ops/LANE-MATRIX.md` is **policy**, not a living pulse.

Generated board: `docs/ops/generated/lane-matrix-status.md`.
Session recon stays in chat. Product PRs carry code.
14 changes: 14 additions & 0 deletions docs/ops/ICM-CCTV.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# ICM-CCTV ops surface

Stepie goal 2087 step 10023: wire icm-cctv && visualization surfaces into Ops Dashboards.

This is the **projection contract**, not a runtime GitHub Pages app.

- Producer: `python3 -m ml.pipelines.cli cctv`
- Schema: `docs/schemas/icm-cctv.json`
- Code: `ml/pipelines/viz/cctv.py`
- Consumed by operator dashboards (Command Center + future GitHub Pages)

No secrets. Counts + lane labels + master SHA only.
Primary Stepie goal 2149 is not reordered by this surface.
Live master at extract: `a3423d97`.
27 changes: 27 additions & 0 deletions docs/ops/ML-PIPELINES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# ML Pipelines keep-alive

Issue #175 forbids wholesale merge of #432 / #549 / #601 / #682.
This document maps the slim extract in `ml/pipelines/` re-based onto live master `a3423d97`.

- DAG: `ml/pipelines/cli.py` + `ml/pipelines/stages/`
- Ranking: `ml/pipelines/moneyball/scorer.py`
- Lane short-circuit: `ml/pipelines/lanes/` (vocab v2 after #836)
- Gate: `ml/pipelines/contracts/gate.py`
- Replay adapters: `ml/pipelines/replay/`
- ICM-CCTV: `ml/pipelines/viz/cctv.py` (Stepie 2087 step 10023)
- Latest fixture: `ml/pipelines/fixtures/session_20260925.json`

## Commands

```text
python3 -m ml.pipelines.cli status
python3 -m ml.pipelines.cli lanes
python3 -m ml.pipelines.cli run
python3 -m ml.pipelines.cli cctv
python3 -m ml.pipelines.cli explain 48
python3 -m ml.pipelines.cli gate 682
python3 -m unittest discover -s ml/pipelines -p 'test_*.py'
```

Promote path remains **dual-gate only**. Vercel / GitLab / Copilot / CodeRabbit / Qodo / Devin are non-gate.
Do not restamp `docs/ops/LANE-MATRIX.md`.
6 changes: 4 additions & 2 deletions docs/ops/SKILLS-INVENTORY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Skills Inventory (termux-monorepo)

**Version:** 2026-09-19 17:26 PDT · **Master tip:** `826dc1e4`
**Version:** 2026-09-25 14:10 PDT · **Master tip:** `a3423d97`
**Primary agent entry:** [`CLAUDE.md`](../../CLAUDE.md)
**Collaborator short entry:** [`SKILLS.md`](../../SKILLS.md)

Expand All @@ -19,7 +19,7 @@ Local agent mirrors (e.g. `.grok/skills/`) are convenience only — **not** a se

| Role | Load first | Then |
|------|------------|------|
| **Admin / Grok Administrator** | `evidence-led-monorepo-ops` + `adaptive-wait` | `review-loop` · `help-wanted-lane` · `github-pages-operator` · `approxination-lane` |
| **Admin / Grok Administrator** | `evidence-led-monorepo-ops` + `adaptive-wait` + `ml-pipeline-ops` | `review-loop` · `help-wanted-lane` · `github-pages-operator` · `icm-cctv-ops` |
| **Collaborator** | `adaptive-feedback-cycle` | dual-gate · `find-skills` |
| **Oversight / external contrib** | `help-wanted-lane` | evidence-led + adaptive-wait · living status board |
| **Dashboard / Pages** | `github-pages-operator` | help-wanted-lane · deploy workflow |
Expand All @@ -40,6 +40,8 @@ Local agent mirrors (e.g. `.grok/skills/`) are convenience only — **not** a se
| gemini-performance-psychology | `.agents/skills/gemini-performance-psychology/SKILL.md` |
| **github-pages-operator** | `.agents/skills/github-pages-operator/SKILL.md` |
| help-wanted-lane | `.agents/skills/help-wanted-lane/SKILL.md` |
| **icm-cctv-ops** | `.agents/skills/icm-cctv-ops/SKILL.md` |
| **ml-pipeline-ops** | `.agents/skills/ml-pipeline-ops/SKILL.md` |
| multivariate-doe | `.agents/skills/multivariate-doe/SKILL.md` |
| review-loop | `.agents/skills/review-loop/SKILL.md` |
| termux-monorepo | `.agents/skills/termux-monorepo/SKILL.md` |
Expand Down
3 changes: 3 additions & 0 deletions docs/proposals/active/actions-refinements/ITEMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
| AR-18 | Establish an observe-mode Capability–Scope–Specialist decision spine that normalizes declared model/provider capabilities, applies hard provenance/availability/quota/scope gates before scoring, emits a secret-free decision envelope, and records repository-local performance evidence ahead of public leaderboard priors. | P0 | Manus AI | executing | Approved Evolutionary Capability Spine plan 2026-08-22. Extends RL-05, RL-11–RL-14, and RL-17 without replacing event classification, peer evidence, command dispatch, or existing branch-write confirmation. Initial delivery is read-only/observe mode with an immediate feature-gate rollback; B3, B4/AR-04, B5/A-14, and PR #276 remain held. |
| AR-19 | Add a read-only Context Relationship Evidence Matrix decision-support record that reuses the canonical graph and lead/lag audit surfaces to classify authority, provenance, freshness, risk, coverage gaps, and outcome bindings. | P1 | Manus AI | executing | Approved 2026-08-25 as the Issue #192 half of a tightly coupled CRG-14 + AR-19 PR. No provider invocation, routing promotion, branch write, command composition, raw-body collection, or generated-index hand edit is authorized. The live audit parsing warning is a collector-correctness remediation; B3, B4/AR-04, B5/A-14, and PR #276 remain held. |
| AR-20 | Repair the Continuous Team Evaluation live-invocation admission gate so dynamic candidate eligibility is emitted as an explicit step output, stale/unavailable candidates are recorded as skips, and eligible lanes reach the provider invocation while preserving the existing immutable MVT ledger and no-source-mutation boundary. | P1 | ChatGPT | executing | Live run `34069136232` at `4460cf4ff8db8860dfb1b477b64de3a39b7faf1c` discovered 22 eligible candidates but every experiment invocation step was skipped; the candidate script printed `eligible=...` to stdout without writing `$GITHUB_OUTPUT`. Fix is limited to workflow admission/observability; provider secrets remain Actions secrets and output remains uncapped at the existing 131072 request value. |
| AR-21 | Provider-neutral evaluation lane registry + GitHub App capability probe (Checks-publication failure mode). Names-only for Issue #184. | P1 | Grok | executing | PR #806. Rebase onto live master before promote. |
| AR-22 | GAMUT remote evaluation + all-repo wiki knowledge fabric. Observational. No secret values. No private Wiki bodies. | P1 | Grok | executing | PR #809. Rebase onto live master before promote. |
| AR-23 | ML keep-alive DAG re-extract onto live master (`ml/pipelines/`). Extract-only vs wholesale #432/#549/#601/#682/#746/#787/#817. ICM-CCTV projection. Vocab v2 after #836. Do not restamp LANE-MATRIX policy. | P0 | Grok | executing | Implements MLP-KEEP-001. Dual-gate on this SHA. Vercel non-gate (#772). |

## Batch Rules

Expand Down
9 changes: 9 additions & 0 deletions docs/proposals/active/ml-keep-alive/ITEMS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ITEMS — ML keep-alive extract (Issue #175)

| ID | Work | Priority | Owner | Status | Evidence / Boundary |
|---|---|---|---|---|---|
| MLP-KEEP-001 | Slim `ml/pipelines/` DAG + MoneyBall + lane short-circuit onto live master. Never wholesale-merge #432/#549/#601/#682. | P0 | Grok | executing | Dual-gate on this SHA. Vercel non-gate (#772). |
| MLP-KEEP-002 | ICM-CCTV projection (`cli cctv`) for ops dashboards. No secrets. | P1 | Grok | executing | Schema `docs/schemas/icm-cctv.json`. |
| MLP-KEEP-003 | Minesweeper + supersede classifiers so Jules/Sentinel/Bolt peers are not overwritten. | P1 | Grok | executing | `lanes/minesweeper_rules.py`, `lanes/supersede_rules.py`. |
| MLP-KEEP-004 | Latest-session fixture resolver so keep-alive rebases do not restamp LANE-MATRIX policy. | P1 | Grok | executing | `lib/latest.py` + `fixtures/session_20260925.json`. |
| MLP-KEEP-005 | Align lane vocab with #836 (EXTRACT/CANDIDATE/NEED_EVIDENCE/SUPERSEDE). | P0 | Grok | executing | Invalid parking HOLD/WAIT/OBSERVE rejected in tests. |
7 changes: 7 additions & 0 deletions docs/proposals/active/ml-keep-alive/MANIFEST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Manifest

Package: `ml/pipelines/`
Issue: #175
Item: MLP-KEEP-001
Master at cut: `a3423d9760dd372967a765d16696db7cc67ca300`
Agent-Identity: Grok (Administrator)
7 changes: 7 additions & 0 deletions docs/proposals/active/ml-keep-alive/source.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# ML keep-alive proposal

Implements: MLP-KEEP-001

Extract-only vs wholesale ML PRs. Stdlib Python. No GPU. No secrets.
Promote only when dual-gate is green on **this** SHA.
Lane vocab v2 after #836.
20 changes: 19 additions & 1 deletion docs/proposals/registry.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
# ArchW1z proposal registry — agents read this first
version: 1
updated_at: "2026-09-24T16:40:00Z"
updated_at: "2026-09-25T21:10:00Z"
updated_by: grok-administrator

proposals:
- id: ml-keep-alive
title: "ML keep-alive DAG extract onto live master (Issue #175)"
author: grok
status: executing
priority: P0
path: active/ml-keep-alive/
reviewers:
- id: grok
role: author+executor
status: executing
- id: timerloggedout-spec
role: operator-authorizer
status: requested
related_issues: [175, 772]
related_prs: [817, 787, 746, 682, 432]
related_branches: [feat/ml-pipelines-keepalive-20260925]
gates_required: [repo-gate, termux-smoke]

- id: temporal-langsmith-adapter
title: "Temporal self-host + LangSmith Trajectories adapter (P1 observational)"
author: grok
Expand Down
25 changes: 25 additions & 0 deletions docs/schemas/icm-cctv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ICM-CCTV projection",
"type": "object",
"required": [
"master_sha",
"issue",
"lanes"
],
"properties": {
"master_sha": {
"type": "string",
"minLength": 7
},
"issue": {
"const": 175
},
"lanes": {
"type": "object"
},
"operator": {
"const": "ACTIVE"
}
}
}
1 change: 1 addition & 0 deletions ml/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""ML keep-alive package. Extract-only vs wholesale #682/#432/#549/#601/#817."""
21 changes: 21 additions & 0 deletions ml/pipelines/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# ml/pipelines keep-alive

Slim extract of the ML keep-alive DAG. Issue #175 forbids wholesale merge of
#432 / #549 / #601 / #682 / #746 / #787 / #817.

Re-extracted onto live master `a3423d97` after #836 (lane vocab v2).

Lane vocabulary: `EXTRACT | CANDIDATE | NEED_EVIDENCE | SUPERSEDE`.
HOLD / WAIT / OBSERVE are invalid parking.

```text
python3 -m ml.pipelines.cli status
python3 -m ml.pipelines.cli lanes
python3 -m ml.pipelines.cli run
python3 -m ml.pipelines.cli cctv
python3 -m ml.pipelines.cli matrix
python3 -m unittest discover -s ml/pipelines -p 'test_*.py'
```

Operator ACTIVE. Dual-gate remains promote authority. Vercel non-gate (#772).
Do not restamp LANE-MATRIX policy.
1 change: 1 addition & 0 deletions ml/pipelines/VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.5.0
8 changes: 5 additions & 3 deletions ml/pipelines/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
"""Slim keep-alive ML pipeline package (AR-23 / MLP-KEEP-001)."""
"""ml.pipelines: Keep-alive ML DAG for operator ranking.

from .keepalive_dag import DagSpec, default_dag, render_mermaid, validate_dag
Implements: MLP-KEEP-001
"""
from __future__ import annotations

__all__ = ["DagSpec", "default_dag", "render_mermaid", "validate_dag"]
__version__ = "0.5.0"
5 changes: 5 additions & 0 deletions ml/pipelines/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from ml.pipelines.cli import main
import sys

if __name__ == '__main__':
sys.exit(main())
Loading
Loading