Skip to content

Latest commit

 

History

History
157 lines (122 loc) · 9.16 KB

File metadata and controls

157 lines (122 loc) · 9.16 KB

Beatless Constellation v3 — Drift Audit

Date: 2026-04-22 Auditor: Claude Opus 4.6 + Codex cross-check Scope: GitHub command surface, path consistency, heartbeat contract, pipeline wiring


Executive Summary

The Constellation has 3 execution paths for GitHub work, 2 legacy artifacts, and 8 drift issues found by Codex analysis. Additionally, Hermes subagent routing sends all delegations to Step 3.5 Flash (MiniMax M2.7 is not wired into the delegation system). This document records all findings and tracks fixes.


1. GitHub Command Surface

# File Role Status
1 ~/.claude/commands/github-pr.md ClaudeCode command spec (loaded by /github-pr) Active — v6, plugin-optional
2 ~/.claude/commands/pr-followup.md ClaudeCode command spec (loaded by /pr-followup) Active — v2, plugin-optional
3 ~/claw/Beatless/pipelines/github-pr.md Detailed 12-phase pipeline reference Active — v6, skills-based
4 ~/claw/Beatless/pipelines/auto-pr.sh Real submission runner (tmux + claude -p) Active — production
5 ~/claw/Beatless/pipelines/github-pr-runner.sh Trial/test runner (tmux + claude -p, no submit) Active — testing only
6 ~/claw/Beatless/pipelines/pr-followup/test-run.sh Follow-up runner (tmux + claude -p opus-4.7) Active — production
7 ~/claw/Beatless/pipelines/github-hunt.md Deprecated discovery-only spec DEPRECATED — remove
8 ~/.hermes/scripts/github-pr.py Hermes wake-gate (cron → issue check → claude -p) Active — Hermes cron
9 ~/.hermes/scripts/github-response.py Hermes wake-gate (cron → notification check → claude -p) Active — Hermes cron

Redundancy Analysis

There are TWO parallel execution systems:

  • Hermes crongithub-pr.py / github-response.py (Python wake-gates, lightweight)
  • Heartbeat cronheartbeat-driver.sh<pipeline>/test-run.sh (Bash tmux launcher, legacy)

These can conflict if both are active. The Hermes system is the v3 design; the heartbeat system is legacy v2.


2. Issues Found

Issue 1: Path drift — <previous-local-user> references remain

Severity: HIGH — will cause failures on this machine Files affected:

  • scripts/heartbeat-driver.sh:13SHARED_DIR="/home/<previous-local-user>/..."
  • scripts/cron-driver.sh:7,12 — usage comment + LOG_DIR
  • scripts/harness/notify-user.sh:24cd /home/<previous-local-user>/claw
  • scripts/harness/gateway-supervisor.sh:3,4,5 — LOG, GWLOG, CMD paths
  • scripts/openclaw/gateway-supervisor.sh:3,4,5 — same as above (duplicate)

Fix: sed -i 's|/home/<previous-local-user>|/home/<your-user>|g' on all affected files. Status: [x] FIXED 2026-04-22 — 25+ files, ~88 replacements across scripts/, agents/, docs/

Issue 2: Heartbeat contract mismatch

Severity: MEDIUM — heartbeat expects <name>/test-run.sh, but github-pr uses auto-pr.sh Detail: heartbeat-driver.sh:29 does local run_script="$PIPELINE_DIR/$name/test-run.sh" which expects:

  • pipelines/github-pr/test-run.sh — does NOT exist (actual file is auto-pr.sh at pipeline root)
  • pipelines/pr-followup/test-run.sh — EXISTS and works
  • pipelines/blog-maintenance/test-run.sh — not checked

Fix: Either rename auto-pr.shpipelines/github-pr/test-run.sh or update heartbeat to use actual paths. Status: [ ] WONTFIX — Legacy v2 heartbeat system archived. Hermes cron is the v3 execution path.

Issue 3: Result file mismatch

Severity: LOW — auto-pr.sh doesn't write .result file; heartbeat watches for *.result Detail: pr-followup/test-run.sh correctly writes .result JSON. auto-pr.sh does not. Fix: Add .result output to auto-pr.sh matching the pr-followup pattern. Status: [x] FIXED 2026-04-22 — .result JSON block added to auto-pr.sh

Issue 4: Interactive rebase in autonomous flow

Severity: HIGH — git rebase -i hangs in -p mode (no TTY) Location: pipelines/github-pr.md:444 Fix: Replace with non-interactive squash: git reset --soft main && git commit Status: [x] FIXED 2026-04-22 — replaced at pipelines/github-pr.md:444

Issue 5: Text corruption

Severity: LOW — cosmetic only Location: pipelines/github-pr.md:546�� instead of Fix: Replace corrupted character. Status: [x] FIXED 2026-04-22 — sed byte replacement at pipelines/github-pr.md:546

Issue 6: Deprecated file still present

Severity: LOW — no functional impact but confusing File: pipelines/github-hunt.md Fix: Delete or move to archive/. Status: [x] FIXED 2026-04-22 — deleted

Issue 7: Hermes subagent routing — MiniMax not wired

Severity: LOW (for now) — only affects blog-maintenance pipeline (next stage) Detail: ~/.hermes/config.yaml delegation block only defines Step as provider. MiniMax M2.7 is configured in model_aliases and .env but not in delegation. All delegate_task calls fall through to Step 3.5 Flash. Evidence: Hermes spawned Methode (Step) and Kouka (MiniMax) — both reported as step-3.5-flash. MiniMax API: Working (200 OK on messages endpoint). hermes doctor 404 is false alarm (checks /models which the Anthropic proxy doesn't expose). Fix: Added minimax provider to config.yaml with OpenAI-compatible endpoint (https://api.minimaxi.com/v1). API returns 200, Hermes recognizes model. Per-cron model override not supported by Hermes CLI — blog-maintenance.py needs to call hermes chat --model minimax directly for MiniMax routing. Status: [x] PROVIDER FIXED 2026-04-22 — blog per-job routing deferred to blog stage

Issue 8: Docs drift

Severity: LOW — README and state files have stale interval/log location references Locations: README.md:23,114, pipelines/github-pr-state.json:4 Status: [ ] PENDING


3. Quality Standards — Current State

Standard Location Format Status
PR Workflow (7-step) skill pr-workflow (~/.claude/commands/pr-workflow.md) English, structured Active
Quality Gate (8-item) skill pr-quality-gate (~/.claude/commands/pr-quality-gate.md) English, scored 0-10 Active
Scoring Rubric ~/workspace/pr-stage/pr-scoring-rubric.md English, anchor tables Active (backup)
Chinese sources ~/claw/Beatless/standards/*.source.md, 贡献指南.md, mention.md Chinese, reference only Archived

4. Plugin Integration

Plugin Version Type Available in -p mode?
Codex 1.0.4 Agent subagent Unreliable — try once, fallback
Gemini 1.0.0 Agent subagent Unreliable — try once, fallback
GSD 2.38.2 Skill set Yes (skills load normally)
Superpowers 5.0.7 Skill set Yes
Planning-with-Files 2.34.0 Skill set Yes
GitHub MCP-based MCP tools Yes (gh CLI always works)

Design principle: Every pipeline phase must work with Claude + Bash alone. Plugins are optional accelerators.


5. Fix Tracker

# Issue Severity Fix Done?
1 Path drift () HIGH sed replace in 25+ files (~88 refs) [x] FIXED 2026-04-22
2 Heartbeat contract mismatch MEDIUM Legacy — Hermes cron is primary [ ] WONTFIX (legacy v2)
3 Result file missing in auto-pr.sh LOW Add .result output [x] FIXED 2026-04-22
4 Interactive rebase HIGH Non-interactive squash [x] FIXED 2026-04-22
5 Text corruption LOW Fix �� [x] FIXED 2026-04-22
6 Deprecated github-hunt.md LOW Delete [x] FIXED 2026-04-22
7 MiniMax routing LOW Provider added, API 200, OpenAI endpoint wired [x] FIXED 2026-04-22 (blog per-job model override set in jobs.json)
8 Docs drift LOW README rewritten for v3 [x] FIXED 2026-04-22

6. Session 2 Fixes (2026-04-22 09:00-10:00 ET)

# Fix Detail
9 Blog Maintenance MiniMax per-job Set model/provider/base_url in jobs.json — runtime supports per-job override (scheduler.py:783)
10 github-response.py wake logic Replaced updatedAt check with actual maintainer comment check via gh api
11 github-pr.py label coverage Added "help wanted" and "bug" labels (was only "good first issue")
12 github-pr.py empty output Structured status reporting: PIPELINE_ERROR on empty stdout, status JSON file, PR URL extraction
13 exp-status.md missing Agent Added Agent to allowed-tools frontmatter
14 Git email Changed global git email from to (GitHub verified primary)
15 MiniMax skill pack Installed 7 MiniMax skills via hermes skills tap + install
16 Hermes skills cleanup Disabled codex + opencode skills (claude-code only); skills.disabled in config.yaml
17 PR Pipeline interval Shortened from 150m to 60m
18 V2 infrastructure archived Moved agents, pipelines, scripts to archive/v2-deprecated/
19 README rewrite Reflects v3 architecture, marks Aoi/OpenRoom as planned next stages