Skip to content

docs(claude): split CLAUDE.md into BOOTSTRAP + CATALOG + PATTERNS (Phase C) - #1385

Merged
POWERFULMOVES merged 1 commit into
mainfrom
docs/bootstrap-prosodic-claude-md
Apr 26, 2026
Merged

POWERFULMOVES merged 1 commit into
mainfrom
docs/bootstrap-prosodic-claude-md

Conversation

@POWERFULMOVES

Copy link
Copy Markdown
Owner

Summary

Phase C of the 5090 CLAUDE cross-node awareness gap remediation (Phase A: #1378/#1379/#1380).

`.claude/CLAUDE.md` grew to ~46k chars — always-loaded, monolithic, dogmatic. Agents either parsed the whole thing slowly or skipped it silently. Either way, not the context prosody the MOF thesis demands. This PR splits it into 4 files with clear loading tiers.

Changes

File Size Role
`.claude/BOOTSTRAP.md` (new) 4943 chars Flat foundation. Emperor-CHIT-humility disclosure, 6 Known Roads, 4 MCP entrypoints, 3 cross-node delegation paths. Always loaded. Hard budget ≤5000.
`.claude/CATALOG.md` (new) 7256 chars Service ports, URLs, health endpoints. On-demand when a task needs a specific service.
`.claude/PATTERNS.md` (new) 20735 chars Known Roads table, credentials, CHIT, skill pairings, hook recovery, CodeQL sanitizer, NATS subjects, topology. On-demand when a task needs a rule.
`.claude/CLAUDE.md` 10048 chars (down from ~46k) Thin orchestration: architecture thesis, Tier 1-4 loading, pointers.

Net always-loaded context (BOOTSTRAP + CLAUDE): 15k chars — 67% reduction from the 46k monolith. Every pointer references real sibling files or existing `.claude/context/` docs — no content removed, only relocated and deduplicated.

Why

Per merged PR #1378 (MOF Architecture): every PMOVES node is a pore in the lattice — capacity-class, not expertise-lane. Every agent loads the same flat foundation; hardware doesn't pre-specialize. Per memory `vision_emperor_chit_humility.md`: bluffing awareness IS the failure mode. BOOTSTRAP.md institutes a disclosure-first session start so the 5090-style drift has no room to hide.

Testing

  • `wc -c .claude/BOOTSTRAP.md` → 4943 (≤5000 budget ✓)
  • `wc -c .claude/CLAUDE.md` → 10048 (<25k target ✓)
  • All internal links reference existing files (sibling `.claude/.md` or documented `.claude/context/` / `pmoves/docs/*` paths)
  • Diff shows 632 insertions + 956 deletions on 4 files — net reduction
  • CodeRabbit review pending
  • Ops signal: after merge, next cold-start agent should see smaller always-load footprint

Follow-ups (out of scope for this PR)

  • Phase B (assigned to 4090-CLAUDE via AGNOTE4482PHI.t1 claim): rewrite SITREP § Agent Lanes Quick Reference from expertise-lane to capacity-class framing.
  • Phase D (deferred until A2A activation clarified): `/health:node-awareness` skill implementing the emperor-humility disclosure as a live probe.
  • Phase E (5090-CLAUDE's own retrospective): `feedback_5090_specialist_drift.md` memory entry.

Review Coordination

  • Requested Codex review
  • Requested GitHub Copilot review

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

…ase C)

Addresses 5090 CLAUDE cross-node awareness gap (PR #1378 MOF thesis, PR #1379 Grand Convergence).

Problem: .claude/CLAUDE.md grew to ~46k chars — always-loaded, monolithic, dogmatic. Agents either parsed the whole thing slowly or skipped it silently. Either way, not the context prosody the framework needs.

Solution: 4-file prosodic structure.

- .claude/BOOTSTRAP.md (4943c) — flat foundation. Emperor-CHIT-humility disclosure, 6 Known Roads, 4 MCP entrypoints, 3 cross-node delegation paths. 'If this file is all you remember, you can still do the right thing.'
- .claude/CATALOG.md (7256c) — service ports/URLs/health endpoints. On-demand when a task needs a specific service.
- .claude/PATTERNS.md (20735c) — Known Roads, credentials, CHIT, skill pairings, hook recovery, CodeQL sanitizer. On-demand when a task needs a rule.
- .claude/CLAUDE.md (10048c, down from ~46k) — thin orchestration layer: architecture thesis, Tier 1-4 loading, pointers to BOOTSTRAP/CATALOG/PATTERNS, meta-instruction.

Net always-loaded context (BOOTSTRAP + CLAUDE): 15k chars, 67% reduction from 46k. Every pointer references real sibling files or existing context docs — no content removed, only relocated and deduplicated.

Alignment with MOF thesis: every node loads the same flat foundation; capacity-class not expertise-lane means every agent is equipped to run PMOVES, not pre-specialized by hardware.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Apr 24, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@POWERFULMOVES has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 46 minutes and 18 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 46 minutes and 18 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 61755d08-b32e-4932-960e-e71f2da01590

📥 Commits

Reviewing files that changed from the base of the PR and between 9ed3543 and 0df8e3a.

📒 Files selected for processing (4)
  • .claude/BOOTSTRAP.md
  • .claude/CATALOG.md
  • .claude/CLAUDE.md
  • .claude/PATTERNS.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/bootstrap-prosodic-claude-md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0df8e3a73e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .claude/CATALOG.md

**Ports, URLs, health endpoints. Load this on demand when you need a specific service address.**

All services expose `/healthz` for liveness and `/metrics` for Prometheus.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clarify global health/metrics endpoint claim

The blanket statement that all services expose both /healthz and /metrics is contradicted by entries in this same catalog (for example, Mesh Agent has no HTTP interface and Cipher Memory documents /health), so any automation or operators using this line as a default probe rule will generate false failures. Please scope the claim to only services that implement the standard health router, or remove it in favor of per-service endpoints.

Useful? React with 👍 / 👎.

POWERFULMOVES pushed a commit that referenced this pull request Apr 24, 2026
Append claim/release entries + signed ACK block for Z890-mirror-on-5090
session wrapping Phase A merge wave (PRs #1378/#1379/#1380) and Phase C
BOOTSTRAP.md split (PR #1385).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@POWERFULMOVES
POWERFULMOVES merged commit cc2860e into main Apr 26, 2026
11 checks passed
@POWERFULMOVES
POWERFULMOVES deleted the docs/bootstrap-prosodic-claude-md branch April 26, 2026 23:26
POWERFULMOVES added a commit that referenced this pull request Apr 26, 2026
… merges (#1386)

* chore(docs): reconcile PRODUCTION_AUDIT_DASHBOARD after Phase A + #1384 merges

Post-merge dashboard refresh. 215 commits behind HEAD before this reconcile.

Related merges on main since last reconcile (2026-04-17):
- #1378 MOF Architecture (9fb2c43)
- #1379 Grand Convergence (c50f9af)
- #1380 AGNOTE4482 wave entries (f672a30)
- #1384 Multi-session Supabase hardening (9ed3543)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(agnote4482): claim register + ACK for Phase A + C close-out

Append claim/release entries + signed ACK block for Z890-mirror-on-5090
session wrapping Phase A merge wave (PRs #1378/#1379/#1380) and Phase C
BOOTSTRAP.md split (PR #1385).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Shaela Bello <slbello@uncg.edu>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
POWERFULMOVES added a commit that referenced this pull request May 3, 2026
…#1415)

* docs(launch): Stage 0 — initial layout validation for launch readiness

Establishes the launch-readiness substrate before any Stage 1+ edits:

- pmoves/configs/tac_trees/pmoves-launch-readiness.tac.yaml — 12-stage TAC
  tree mirroring the pinokio-p7.tac.yaml convention (name/version/root with
  hierarchical children, action.type/expect, status, agent_hint). Stages 0-3
  + 7-11 launch-blocking; Stages 4-6 (Longbow, viz, retrace lifeline) v1.1.
- pmoves/docs/launch/PLIGHT_AND_PLAN.md — narrative + milestones M0-M6 +
  outstanding owner-decision table; body of the GitHub plight-and-plan issue.
- pmoves/docs/launch/PR_BACKLOG_CLASSIFICATION.md — 9 open PRs classified as
  critical-path (#1381 sign-trail, #1371 A2A activation), opportunistic
  (#1385/86/87 docs), auto-merge (#1388/#1372 dependabots), or v1.1-deferred
  (#1373/#1374 drafts).
- scripts/validate_launch_layout.py — TAC-walking validator. Supports
  file_exists, file_or, manual, gh_issue, pytest, script, nats_subject,
  pr_state, supabase_migration, nats_messages_seen check types. Outputs
  pmoves/docs/launch/LAYOUT_VALIDATION_REPORT.md.
- pmoves/docs/launch/LAYOUT_VALIDATION_REPORT.md — first-run baseline showing
  11/45 blocking nodes pass (Stage 0 deliverables green; Stage 1+ pending).

Cross-cutting principle established in the plan: every gate junction emits
both syntactic and semantic measure; drift goes to a gate_drift_dynamo
Qdrant collection (drift-as-dynamo). Defense-in-stance for Stage 8: parallel
work-attestation stub + TradFi+Web3 hybrid token tracks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(launch): close Stage 0 — issue #1389 filed, all 5 nodes green

GitHub plight-and-plan tracking issue filed at
#1389. Validation report
refreshed to reflect closed gate: 12/45 blocking nodes now pass (Stage 0
contributing 5/5).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(audit): credential + naming-drift coherence gate (5×5 trail handshake)

Lands the foundation for the 5×5 trail handshake invariant: agent emit /
operator confirm / CI verify / trail record all read the same
signing_card_id. Converts ten naming-drift sites from a recurring
CodeRabbit/owl annoyance into an enforceable contract.

Phase 1: CREDENTIAL_AND_DRIFT_SITREP — factual snapshot of PAT state,
GitHub App migration gap, commit-signing posture, runner secrets pipeline,
and the 10-row drift inventory with severity ranking.

Phase 2: signing_identity_cards.yaml (16 cards: 1 operator, 9 agents,
1 service-account, 5 runners) + SIGNING_IDENTITY_CARDS.md operator
explainer. Schema validation embedded in audit gate (canonical schema
file pending damage-control policy carve-out for new versioned files).

Phase 3: CANONICAL_NAMES.md decision log + bootstrap/registry.json
canonical_aliases structured block. Audit gate prefers the JSON form;
markdown is the human-facing fallback.

Phase 4: audit_naming_drift.py (666 lines, 6 surface checks) + 10-test
suite + naming-drift-check / naming-drift-strict make targets. Currently
detects 7 P0 (GH_APP_SEC PEM misuse) and ~83 P1 (compose ${VAR:-}
triage backlog made visible). Strict mode stays local-only per
Owner-Decision E until P0 → 0.

Phase 5: node_descriptions_diff scaffold (gitignored runtime artifact).

Trail handshake (channel #4 of 5×5): sign_trail.py now reads cards on
every signing call and stamps signing_card_id on the payload. Advisory
mode per Owner-Decision D — missing card warns to stderr but doesn't
block.

Three-Body separation honored:
  - Delivery body: claude-opus produced phases 1-5 deliverables
  - Control body: z890-claude reviewed independently, closed 3 of 5
    surfaced gaps in this commit (trail handshake, registry block,
    schema validation), filed 2 as deferred follow-ups
  - Memory body: cards seed + audit log artifacts feed the Cipher trail

Files (11):
  pmoves/docs/operations/CREDENTIAL_AND_DRIFT_SITREP.md  [NEW]
  pmoves/config/signing_identity_cards.yaml              [NEW]
  pmoves/docs/operations/SIGNING_IDENTITY_CARDS.md       [NEW]
  pmoves/docs/operations/CANONICAL_NAMES.md              [NEW]
  pmoves/scripts/audit_naming_drift.py                   [NEW]
  pmoves/tests/test_audit_naming_drift.py                [NEW]
  pmoves/tools/sign_trail.py                             [EDIT — card resolver + stamp]
  pmoves/bootstrap/registry.json                         [EDIT — canonical_aliases block only]
  pmoves/mk/preflight.mk                                 [EDIT — naming-drift targets]
  pmoves/docs/AGENTS/AGNOTE4482.md                       [EDIT — Three-Body signoff entry]
  .gitignore                                             [EDIT — runtime log artifacts]

Owner-Decision surface (awaiting DARKXSIDE ACK on each):
  A. Operator SSH fingerprint capture timing — operator-driven
  B. PAT consolidation: 6→1 vs document-scope-per-name — document for now
  C. JWT alias deprecation window — 30 days, sunset 2026-05-26
  D. 5×5 trail handshake mandatory vs advisory — advisory at first
  E. naming-drift-strict in CI promotion criteria — local-only first

Deferred follow-ups:
  - signing-card.v1.schema.json at canonical path (needs damage-control
    patterns.yaml carve-out for new versioned schema files; coupling
    that policy change to a credential-audit PR is out-of-scope)
  - naming-drift-strict CI promotion (after one clean week local)
  - Operator SSH fingerprint backfill on signing_identity_cards.yaml

Verification:
  uv run pytest pmoves/tests/test_audit_naming_drift.py -v   # 10/10 PASS
  make -C pmoves naming-drift-check                          # exit 0
  make -C pmoves naming-drift-strict                         # exit 1 (expected)
  python pmoves/tools/sign_trail.py --agent-id z890-claude   # stamps card_id

ACK::CLAUDE-OPUS::CREDENTIAL-AUDIT-PHASES-1-5::2026-04-26
ACK::Z890-CLAUDE::CREDENTIAL-AUDIT-REVIEW::2026-04-26

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(content-provenance): contracts + SPARK working parity

Establishes the data layer for the SPARK-first content-provenance pipeline
that gates HiRAG ingest behind shaping, attestation, and CHIT geometry.

Pipeline shape (publishers → consumers covered in follow-up commits):
  channel-monitor | ffmpeg-whisper  → content.raw.v1
                                   → SPARK content-provenance-gate
                                   → content.lexicon.shaped.v1
                                   → content.provenance.attested.v1
                                   → content.hirag.accepted.v1 / rejected.v1
                                   → hi-rag-gateway-v2 + hyperdimensions

Adds:
- 5 new content.* JSON schemas (raw, lexicon.shaped, provenance.attested,
  hirag.accepted, hirag.rejected)
- 5 topics.json entries wiring publisher/subscriber contracts
- pmoves/docs/architecture/PMOVES_SPARK_PROVENANCE_PARITY.md — canonical
  working contract for SPARK shaping, attestation, and HiRAG gating
- AGNOTE-dgx-spark expanded from node stub into working-lane note with
  contract pointer and near-term sequence (deploy mesh.gpu.* streams →
  add content.* subjects → wire shaping worker → gate HiRAG → feed
  Hyperdimensions replay)
- Hyperdimensions control plane: documents /hyperdimensions/provenance/
  live save + viewer routes (consumers in Cluster 3)
- CHIT_CHANGE_TRACKER + DOCUMENTATION_MAP: changelog entry + date refresh

Z890 owns trust/infra edges (subjects, JetStream policy, HiRAG gates,
canon). SPARK owns heavy-inference shaping. Hyperdimensions becomes the
replay/control surface for shaped packets.

Cluster 1 of 5 (split-by-cluster commit plan from
C:\Users\DARKXSIDE\.claude\plans\lets-get-sitrep-plz-shiny-octopus.md).
Originating draft of schemas + SPARK parity doc landed in working tree
via Codex CLI on 2026-04-25; this commit promotes them to canon.

Co-Authored-By: Codex CLI <codex@cataclysm.studios>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(content-provenance): publishers — channel-monitor + ffmpeg-whisper emit content.raw.v1

Wires the source ends of the SPARK content-provenance pipeline. Both
services now publish raw content envelopes onto NATS for downstream
shaping, attestation, and HiRAG gating.

channel-monitor:
- New CHANNEL_MONITOR_CONTENT_RAW_PUBLISH toggle (default off; opt-in
  per node)
- Persistent NATS client (best-effort connect; non-fatal on failure)
- Publishes content.raw.v1 events on manual drops with correlation_id
  threading
- Defensive guards when nats-py is not installed
- Tests + README + requirements bump

ffmpeg-whisper:
- Existing CGP publisher path extended to also emit content.raw.v1
  alongside transcript.ready.v1 when CGP_PUBLISH_ENABLED or
  CONTENT_RAW_PUBLISH_ENABLED is set
- Single shared NATS client; publish failures stay non-fatal
- Symbol rename in log lines: "CGP publish failed" → "NATS publish
  failed" (covers both subjects)

Subject contract: content.raw.v1 schema in
pmoves/contracts/schemas/content/raw.v1.schema.json (Cluster 1).

Cluster 2 of 5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(content-provenance): consumers + content-provenance-gate worker + JetStream config

Wires the consumer end of the SPARK content-provenance pipeline:

content-provenance-gate (NEW service):
- Dockerfile + main.py (~21K) + requirements.in
- Implements the SPARK shaping → attestation gate that lives between
  content.raw.v1 and content.hirag.{accepted,rejected}.v1
- Owns lexicon shaping, semantic scoring, CHIT geometry attestation,
  Merkle/Graphiti binding before HiRAG ingest

hi-rag-gateway-v2:
- New provenance_ingest.py: content.hirag.accepted.v1 listener +
  ProvenanceAcceptedItem upsert path that writes shaped lexicon +
  scorecard into Qdrant + Meilisearch
- New provenance_geometry.py: extracts hyperdimensions save config
  from accepted CGP envelopes for /hyperdimensions/provenance/latest.json
- New routes/provenance.py: dedicated upsert + status routes for
  callers that already hold weighted terms / favorite words / sections
- routes/geometry.py: adds /hyperdimensions/provenance/{latest.json,view}
  for live save retrieval + redirect into Hyperdimensions UI
- models.py: ProvenanceAcceptedItem + ProvenanceUpsertReq Pydantic types
- geometry_bus.py + app.py: content.hirag.accepted.v1 listener task
  registered in lifespan (startup connect, graceful drain on shutdown)
- New unit tests: test_provenance_geometry + test_provenance_ingest

gateway:
- Subscribe to content.raw.v1, content.hirag.accepted.v1,
  content.hirag.rejected.v1 alongside existing ingest.* topics

NATS:
- pmoves/nats/content_provenance_streams.yaml: JetStream stream policy
  for content.* subjects (referenced in AGNOTE-dgx-spark near-term lane)

Tests:
- pmoves/tests/services/test_content_provenance_gate.py

Cluster 3 of 5. Hi-RAG gating and SPARK shaping worker now exist in
canon; deployment of mesh.gpu.* + content.* JetStreams remains an
operator step per AGNOTE-dgx-spark.

Co-Authored-By: Codex CLI <codex@cataclysm.studios>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(space-agent): NATS bridge — pmoves.space.action.v1 + pmoves.space.event.v1

Surfaces PMOVES-space-agent (Node.js customware bridge, port 3010) on
the bus so space CRUD + lifecycle events can be observed and acted on
by Agent Zero, attestation workers, and UI feeds.

Subjects:
- pmoves.space.action.v1 — published on /api/pmoves_bridge POST for
  create_space / update_widget / delete_space / list_spaces / read_space
- pmoves.space.event.v1 — published on customware lifecycle changes
  (mutation succeeded, widget updated, space deleted). Stage 8 token-stub
  watches event for work-receipt minting.

Wiring:
- pmoves/bootstrap/registry.json: space-agent service entry with
  PMOVES_BRIDGE_API_KEY (random_hex 32, sensitive), SPACE_AGENT_BIND
  (default 127.0.0.1, opt-in LAN), SPACE_AGENT_PORT, SPACE_AGENT_SRC
  for submodule mount path
- pmoves/config/agent_registry.yaml: space_agent agent entry with
  node_affinity [z890, 5090], orchestration team, agents compose profile,
  attribution_gated CHIT toggle
- .claude/context/nats-subjects.md (×2 mirrors): canonical subject docs

Lane fit (per agent-teams.yaml + operator roster):
- z890 owns trust/infra + DoX + tokenomics
- 5090 carries voice/media weight
- space-agent's customware actions show up in both nodes' surfaces

Cluster 4 of 5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(a2ui-renderer): Pretext text-layout engine + ProvenanceLivingDoc composition + /render/provenance route

Adds the 4090 display surface for the SPARK content-provenance pipeline.
Captions, transcript overlays, provenance labels, and living-doc copy
blocks now wrap deterministically inside the Remotion browser runtime.

Pretext text-layout engine:
- src/remotion/pretextLayout.ts — wraps @chenglou/pretext, falls back to
  browser whitespace handling when canvas measurement is unavailable
- a2ui-animation-schema.json: text + heading elements may opt into
  text_layout.engine=pretext with maxWidth, lineHeight, letterSpacing,
  whiteSpace, wordBreak, maxLines, shrinkWrap, debugBoxes
- src/remotion/A2UIComposition.tsx + index.tsx: integrate pretext
  layout per-element with layout_summary inventory in render response
- skills/remotion-render/manifest.yaml: Pretext metadata + provenance
  endpoint listed as alternate (/render/provenance)

ProvenanceLivingDoc composition:
- src/remotion/ProvenanceLivingDoc.tsx — dedicated composition rendering
  title, summary, merkle root, shape id, weighted terms, favorite words,
  sections, and provenance refs into a living-doc artifact
- src/provenanceLivingDoc.ts — server-side route handler
- src/index.ts: POST /render/provenance route accepts a flat
  ProvenanceLivingDoc request (no A2UI scene-builder layer required)
- a2ui.render.completed.v1 carries provenance_summary alongside
  layout_summary

Tooling:
- scripts/render-provenance-artifact.mjs — local helper to render a
  provenance artifact from a request JSON file (npm run build &&
  node scripts/render-provenance-artifact.mjs <req.json> <out.png>)
- demos/provenance_living_doc.request.json — request fixture
- demos/provenance_living_doc.mof_example.json — MOF-themed sample
- demos/.gitignore — ignores *.preview.{png,mp4,gif,webm} render
  outputs (regenerated locally via the helper script)

CREATOR_PIPELINE.md: documents Living Docs Text Layout section, control
seam (Pmoves-pretext fork tracked alongside @chenglou/pretext), usage
pattern, and the dedicated /render/provenance route.

Cluster 5 of 5 — closes the split-by-cluster commit plan. Working tree
feature work for content-provenance + space-agent + Pretext is now in
canon. Submodule drift reconciliation (Tasks 4-5-7) and rebase (Task 8)
remain.

Co-Authored-By: Codex CLI <codex@cataclysm.studios>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(agnote4482): board entry — Z890-CLAUDE sitrep + drift audit + handoff matrix

Adds CLAIM/REVIEW/RELEASE block to Active Claim Register restoring board
coherence after 19-day quiet period (last entry: CLAUDE-OPUS 2026-04-21).

CLAIM: Sitrep + drift audit on feature/launch-readiness-stage-0
identifying three drift classes — (A) 4 cross-main divergent submodule
pointers incl. Pmoves-cipher + PMOVES-transcribe-and-fetch with origin/main
commits force-pushed away upstream, (B) 20 working-tree submodule advances
unique to neither branch HEAD nor main incl. ClawZ rewind, (C) 28+ files
of uncommitted feature work — coherent SPARK content-provenance pipeline.

REVIEW: Dependency graph mapped against documented agent lanes
(AGNOTE4482_SITREP.md:106-117 + AGNOTE4482PHI.5090-SUBMODULE-AUDIT.md
precedent). Critical path: Z890 commit feature work → 5090 Class B
audit + bake → 5090 Archon+BotZ-gw promote → Z890 rebase. Parallel
lanes: 4090 PR fixes, operator + submodule owners republish for
cipher/transcribe-and-fetch, operator decisions A/C + §1.4 signoff.

RELEASE: Sitrep + 5-cluster commit plan documented in
C:\Users\DARKXSIDE\.claude\plans\lets-get-sitrep-plz-shiny-octopus.md.
Handoffs proposed by lane signature:
  5090-CLAUDE: Tasks 4-5-7 (submodule sync lane)
  4090-CLAUDE: Tasks 2-3 (PR review / Shift Crew lane)
  CODEX-GPT5: Task 9 (§1.4 docs/prospectus signoff)
  OPERATOR: Tasks 6, 10, 11 (upstream republish, SSH fingerprint, JWT sunset)
  Z890-CLAUDE: Task 1 done (this commit set), Task 8 reserved.

Cluster commit pairs (just landed):
  500652d contracts + SPARK working parity
  5153a0b publishers — channel-monitor + ffmpeg-whisper
  2f908a0 consumers + content-provenance-gate + JetStream config
  53abcd4 space-agent NATS bridge
  2eed4a7 a2ui-renderer Pretext + ProvenanceLivingDoc + /render/provenance

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(a2ui-renderer): differentiate render:provenance:still vs :file scripts

Both npm scripts invoked the bare CLI with no arguments, so they always
produced identical .png stills regardless of script name. Pass explicit
input + output args so :still emits PNG and :file emits MP4 — matching
the script's extension-driven branch in render-provenance-artifact.mjs.

Addresses CodeRabbit critical thread on PR #1415, package.json:12.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(ci): disable self-hosted-builds.yml push + PR triggers

Self-hosted runners (ai-lab/5090, kvm4) are not reliably online — the
last 10+ runs of this workflow on push to main have all been cancelled
since 2025-12. Mirroring the precedent set in self-hosted-builds-hardened.yml
(lines 11-14): comment out both auto-triggers, keep workflow_dispatch as
the operator escape hatch.

Re-enable both blocks when:
  - 5090 node has completed submodule sync
  - pmoves-nats-1 is exposed to the host (4222/8222 portproxy fixed)
  - self-hosted runners pass a clean dispatch run

Operators: trigger manually via gh workflow run self-hosted-builds.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: address PR #1415 review findings (C1 H1 H2 H3 H4 M1 M3 M6)

* fix(ci): suit-release-policy.yml YAML — bash continuation breaks block scalar

Lines 45-46 + 54-55 had bash multi-line string continuations starting
at column 1, which dropped them outside the `run: |` block scalar's
10-space indent. Result: YAML parser fails, every run reported as
"workflow file issue" — gate has been broken since inception (7+
consecutive failed runs).

Fix: replace literal newlines in TOUCHED_FILES assignment with bash
ANSI-C quoting (\$'\n'), keeping the assignment on one YAML-safe line:

  TOUCHED_FILES="\$TOUCHED_FILES"\$'\n'"\$MATCHES"

Verified locally with yaml.safe_load → triggers + jobs parse cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(a2ui-renderer): make provenance helper source-backed and override-safe

* fix: address CodeRabbit CRITICAL findings

- Exception handler returns JSONResponse instead of HTTPException
- NATS_URL access made conditional on CONTENT_PROVENANCE_DISABLE_NATS
- Added JSONResponse import

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Codex CLI <codex@cataclysm.studios>
Co-authored-by: PMOVES-AGENT-ZERO-SPARK <pmoves-spark@powerfulmoves.com>
POWERFULMOVES added a commit that referenced this pull request May 11, 2026
…#1432)

* docs(launch): Stage 0 — initial layout validation for launch readiness

Establishes the launch-readiness substrate before any Stage 1+ edits:

- pmoves/configs/tac_trees/pmoves-launch-readiness.tac.yaml — 12-stage TAC
  tree mirroring the pinokio-p7.tac.yaml convention (name/version/root with
  hierarchical children, action.type/expect, status, agent_hint). Stages 0-3
  + 7-11 launch-blocking; Stages 4-6 (Longbow, viz, retrace lifeline) v1.1.
- pmoves/docs/launch/PLIGHT_AND_PLAN.md — narrative + milestones M0-M6 +
  outstanding owner-decision table; body of the GitHub plight-and-plan issue.
- pmoves/docs/launch/PR_BACKLOG_CLASSIFICATION.md — 9 open PRs classified as
  critical-path (#1381 sign-trail, #1371 A2A activation), opportunistic
  (#1385/86/87 docs), auto-merge (#1388/#1372 dependabots), or v1.1-deferred
  (#1373/#1374 drafts).
- scripts/validate_launch_layout.py — TAC-walking validator. Supports
  file_exists, file_or, manual, gh_issue, pytest, script, nats_subject,
  pr_state, supabase_migration, nats_messages_seen check types. Outputs
  pmoves/docs/launch/LAYOUT_VALIDATION_REPORT.md.
- pmoves/docs/launch/LAYOUT_VALIDATION_REPORT.md — first-run baseline showing
  11/45 blocking nodes pass (Stage 0 deliverables green; Stage 1+ pending).

Cross-cutting principle established in the plan: every gate junction emits
both syntactic and semantic measure; drift goes to a gate_drift_dynamo
Qdrant collection (drift-as-dynamo). Defense-in-stance for Stage 8: parallel
work-attestation stub + TradFi+Web3 hybrid token tracks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(launch): close Stage 0 — issue #1389 filed, all 5 nodes green

GitHub plight-and-plan tracking issue filed at
#1389. Validation report
refreshed to reflect closed gate: 12/45 blocking nodes now pass (Stage 0
contributing 5/5).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(audit): credential + naming-drift coherence gate (5×5 trail handshake)

Lands the foundation for the 5×5 trail handshake invariant: agent emit /
operator confirm / CI verify / trail record all read the same
signing_card_id. Converts ten naming-drift sites from a recurring
CodeRabbit/owl annoyance into an enforceable contract.

Phase 1: CREDENTIAL_AND_DRIFT_SITREP — factual snapshot of PAT state,
GitHub App migration gap, commit-signing posture, runner secrets pipeline,
and the 10-row drift inventory with severity ranking.

Phase 2: signing_identity_cards.yaml (16 cards: 1 operator, 9 agents,
1 service-account, 5 runners) + SIGNING_IDENTITY_CARDS.md operator
explainer. Schema validation embedded in audit gate (canonical schema
file pending damage-control policy carve-out for new versioned files).

Phase 3: CANONICAL_NAMES.md decision log + bootstrap/registry.json
canonical_aliases structured block. Audit gate prefers the JSON form;
markdown is the human-facing fallback.

Phase 4: audit_naming_drift.py (666 lines, 6 surface checks) + 10-test
suite + naming-drift-check / naming-drift-strict make targets. Currently
detects 7 P0 (GH_APP_SEC PEM misuse) and ~83 P1 (compose ${VAR:-}
triage backlog made visible). Strict mode stays local-only per
Owner-Decision E until P0 → 0.

Phase 5: node_descriptions_diff scaffold (gitignored runtime artifact).

Trail handshake (channel #4 of 5×5): sign_trail.py now reads cards on
every signing call and stamps signing_card_id on the payload. Advisory
mode per Owner-Decision D — missing card warns to stderr but doesn't
block.

Three-Body separation honored:
  - Delivery body: claude-opus produced phases 1-5 deliverables
  - Control body: z890-claude reviewed independently, closed 3 of 5
    surfaced gaps in this commit (trail handshake, registry block,
    schema validation), filed 2 as deferred follow-ups
  - Memory body: cards seed + audit log artifacts feed the Cipher trail

Files (11):
  pmoves/docs/operations/CREDENTIAL_AND_DRIFT_SITREP.md  [NEW]
  pmoves/config/signing_identity_cards.yaml              [NEW]
  pmoves/docs/operations/SIGNING_IDENTITY_CARDS.md       [NEW]
  pmoves/docs/operations/CANONICAL_NAMES.md              [NEW]
  pmoves/scripts/audit_naming_drift.py                   [NEW]
  pmoves/tests/test_audit_naming_drift.py                [NEW]
  pmoves/tools/sign_trail.py                             [EDIT — card resolver + stamp]
  pmoves/bootstrap/registry.json                         [EDIT — canonical_aliases block only]
  pmoves/mk/preflight.mk                                 [EDIT — naming-drift targets]
  pmoves/docs/AGENTS/AGNOTE4482.md                       [EDIT — Three-Body signoff entry]
  .gitignore                                             [EDIT — runtime log artifacts]

Owner-Decision surface (awaiting DARKXSIDE ACK on each):
  A. Operator SSH fingerprint capture timing — operator-driven
  B. PAT consolidation: 6→1 vs document-scope-per-name — document for now
  C. JWT alias deprecation window — 30 days, sunset 2026-05-26
  D. 5×5 trail handshake mandatory vs advisory — advisory at first
  E. naming-drift-strict in CI promotion criteria — local-only first

Deferred follow-ups:
  - signing-card.v1.schema.json at canonical path (needs damage-control
    patterns.yaml carve-out for new versioned schema files; coupling
    that policy change to a credential-audit PR is out-of-scope)
  - naming-drift-strict CI promotion (after one clean week local)
  - Operator SSH fingerprint backfill on signing_identity_cards.yaml

Verification:
  uv run pytest pmoves/tests/test_audit_naming_drift.py -v   # 10/10 PASS
  make -C pmoves naming-drift-check                          # exit 0
  make -C pmoves naming-drift-strict                         # exit 1 (expected)
  python pmoves/tools/sign_trail.py --agent-id z890-claude   # stamps card_id

ACK::CLAUDE-OPUS::CREDENTIAL-AUDIT-PHASES-1-5::2026-04-26
ACK::Z890-CLAUDE::CREDENTIAL-AUDIT-REVIEW::2026-04-26

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(content-provenance): contracts + SPARK working parity

Establishes the data layer for the SPARK-first content-provenance pipeline
that gates HiRAG ingest behind shaping, attestation, and CHIT geometry.

Pipeline shape (publishers → consumers covered in follow-up commits):
  channel-monitor | ffmpeg-whisper  → content.raw.v1
                                   → SPARK content-provenance-gate
                                   → content.lexicon.shaped.v1
                                   → content.provenance.attested.v1
                                   → content.hirag.accepted.v1 / rejected.v1
                                   → hi-rag-gateway-v2 + hyperdimensions

Adds:
- 5 new content.* JSON schemas (raw, lexicon.shaped, provenance.attested,
  hirag.accepted, hirag.rejected)
- 5 topics.json entries wiring publisher/subscriber contracts
- pmoves/docs/architecture/PMOVES_SPARK_PROVENANCE_PARITY.md — canonical
  working contract for SPARK shaping, attestation, and HiRAG gating
- AGNOTE-dgx-spark expanded from node stub into working-lane note with
  contract pointer and near-term sequence (deploy mesh.gpu.* streams →
  add content.* subjects → wire shaping worker → gate HiRAG → feed
  Hyperdimensions replay)
- Hyperdimensions control plane: documents /hyperdimensions/provenance/
  live save + viewer routes (consumers in Cluster 3)
- CHIT_CHANGE_TRACKER + DOCUMENTATION_MAP: changelog entry + date refresh

Z890 owns trust/infra edges (subjects, JetStream policy, HiRAG gates,
canon). SPARK owns heavy-inference shaping. Hyperdimensions becomes the
replay/control surface for shaped packets.

Cluster 1 of 5 (split-by-cluster commit plan from
C:\Users\DARKXSIDE\.claude\plans\lets-get-sitrep-plz-shiny-octopus.md).
Originating draft of schemas + SPARK parity doc landed in working tree
via Codex CLI on 2026-04-25; this commit promotes them to canon.

Co-Authored-By: Codex CLI <codex@cataclysm.studios>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(content-provenance): publishers — channel-monitor + ffmpeg-whisper emit content.raw.v1

Wires the source ends of the SPARK content-provenance pipeline. Both
services now publish raw content envelopes onto NATS for downstream
shaping, attestation, and HiRAG gating.

channel-monitor:
- New CHANNEL_MONITOR_CONTENT_RAW_PUBLISH toggle (default off; opt-in
  per node)
- Persistent NATS client (best-effort connect; non-fatal on failure)
- Publishes content.raw.v1 events on manual drops with correlation_id
  threading
- Defensive guards when nats-py is not installed
- Tests + README + requirements bump

ffmpeg-whisper:
- Existing CGP publisher path extended to also emit content.raw.v1
  alongside transcript.ready.v1 when CGP_PUBLISH_ENABLED or
  CONTENT_RAW_PUBLISH_ENABLED is set
- Single shared NATS client; publish failures stay non-fatal
- Symbol rename in log lines: "CGP publish failed" → "NATS publish
  failed" (covers both subjects)

Subject contract: content.raw.v1 schema in
pmoves/contracts/schemas/content/raw.v1.schema.json (Cluster 1).

Cluster 2 of 5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(content-provenance): consumers + content-provenance-gate worker + JetStream config

Wires the consumer end of the SPARK content-provenance pipeline:

content-provenance-gate (NEW service):
- Dockerfile + main.py (~21K) + requirements.in
- Implements the SPARK shaping → attestation gate that lives between
  content.raw.v1 and content.hirag.{accepted,rejected}.v1
- Owns lexicon shaping, semantic scoring, CHIT geometry attestation,
  Merkle/Graphiti binding before HiRAG ingest

hi-rag-gateway-v2:
- New provenance_ingest.py: content.hirag.accepted.v1 listener +
  ProvenanceAcceptedItem upsert path that writes shaped lexicon +
  scorecard into Qdrant + Meilisearch
- New provenance_geometry.py: extracts hyperdimensions save config
  from accepted CGP envelopes for /hyperdimensions/provenance/latest.json
- New routes/provenance.py: dedicated upsert + status routes for
  callers that already hold weighted terms / favorite words / sections
- routes/geometry.py: adds /hyperdimensions/provenance/{latest.json,view}
  for live save retrieval + redirect into Hyperdimensions UI
- models.py: ProvenanceAcceptedItem + ProvenanceUpsertReq Pydantic types
- geometry_bus.py + app.py: content.hirag.accepted.v1 listener task
  registered in lifespan (startup connect, graceful drain on shutdown)
- New unit tests: test_provenance_geometry + test_provenance_ingest

gateway:
- Subscribe to content.raw.v1, content.hirag.accepted.v1,
  content.hirag.rejected.v1 alongside existing ingest.* topics

NATS:
- pmoves/nats/content_provenance_streams.yaml: JetStream stream policy
  for content.* subjects (referenced in AGNOTE-dgx-spark near-term lane)

Tests:
- pmoves/tests/services/test_content_provenance_gate.py

Cluster 3 of 5. Hi-RAG gating and SPARK shaping worker now exist in
canon; deployment of mesh.gpu.* + content.* JetStreams remains an
operator step per AGNOTE-dgx-spark.

Co-Authored-By: Codex CLI <codex@cataclysm.studios>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(space-agent): NATS bridge — pmoves.space.action.v1 + pmoves.space.event.v1

Surfaces PMOVES-space-agent (Node.js customware bridge, port 3010) on
the bus so space CRUD + lifecycle events can be observed and acted on
by Agent Zero, attestation workers, and UI feeds.

Subjects:
- pmoves.space.action.v1 — published on /api/pmoves_bridge POST for
  create_space / update_widget / delete_space / list_spaces / read_space
- pmoves.space.event.v1 — published on customware lifecycle changes
  (mutation succeeded, widget updated, space deleted). Stage 8 token-stub
  watches event for work-receipt minting.

Wiring:
- pmoves/bootstrap/registry.json: space-agent service entry with
  PMOVES_BRIDGE_API_KEY (random_hex 32, sensitive), SPACE_AGENT_BIND
  (default 127.0.0.1, opt-in LAN), SPACE_AGENT_PORT, SPACE_AGENT_SRC
  for submodule mount path
- pmoves/config/agent_registry.yaml: space_agent agent entry with
  node_affinity [z890, 5090], orchestration team, agents compose profile,
  attribution_gated CHIT toggle
- .claude/context/nats-subjects.md (×2 mirrors): canonical subject docs

Lane fit (per agent-teams.yaml + operator roster):
- z890 owns trust/infra + DoX + tokenomics
- 5090 carries voice/media weight
- space-agent's customware actions show up in both nodes' surfaces

Cluster 4 of 5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(a2ui-renderer): Pretext text-layout engine + ProvenanceLivingDoc composition + /render/provenance route

Adds the 4090 display surface for the SPARK content-provenance pipeline.
Captions, transcript overlays, provenance labels, and living-doc copy
blocks now wrap deterministically inside the Remotion browser runtime.

Pretext text-layout engine:
- src/remotion/pretextLayout.ts — wraps @chenglou/pretext, falls back to
  browser whitespace handling when canvas measurement is unavailable
- a2ui-animation-schema.json: text + heading elements may opt into
  text_layout.engine=pretext with maxWidth, lineHeight, letterSpacing,
  whiteSpace, wordBreak, maxLines, shrinkWrap, debugBoxes
- src/remotion/A2UIComposition.tsx + index.tsx: integrate pretext
  layout per-element with layout_summary inventory in render response
- skills/remotion-render/manifest.yaml: Pretext metadata + provenance
  endpoint listed as alternate (/render/provenance)

ProvenanceLivingDoc composition:
- src/remotion/ProvenanceLivingDoc.tsx — dedicated composition rendering
  title, summary, merkle root, shape id, weighted terms, favorite words,
  sections, and provenance refs into a living-doc artifact
- src/provenanceLivingDoc.ts — server-side route handler
- src/index.ts: POST /render/provenance route accepts a flat
  ProvenanceLivingDoc request (no A2UI scene-builder layer required)
- a2ui.render.completed.v1 carries provenance_summary alongside
  layout_summary

Tooling:
- scripts/render-provenance-artifact.mjs — local helper to render a
  provenance artifact from a request JSON file (npm run build &&
  node scripts/render-provenance-artifact.mjs <req.json> <out.png>)
- demos/provenance_living_doc.request.json — request fixture
- demos/provenance_living_doc.mof_example.json — MOF-themed sample
- demos/.gitignore — ignores *.preview.{png,mp4,gif,webm} render
  outputs (regenerated locally via the helper script)

CREATOR_PIPELINE.md: documents Living Docs Text Layout section, control
seam (Pmoves-pretext fork tracked alongside @chenglou/pretext), usage
pattern, and the dedicated /render/provenance route.

Cluster 5 of 5 — closes the split-by-cluster commit plan. Working tree
feature work for content-provenance + space-agent + Pretext is now in
canon. Submodule drift reconciliation (Tasks 4-5-7) and rebase (Task 8)
remain.

Co-Authored-By: Codex CLI <codex@cataclysm.studios>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(agnote4482): board entry — Z890-CLAUDE sitrep + drift audit + handoff matrix

Adds CLAIM/REVIEW/RELEASE block to Active Claim Register restoring board
coherence after 19-day quiet period (last entry: CLAUDE-OPUS 2026-04-21).

CLAIM: Sitrep + drift audit on feature/launch-readiness-stage-0
identifying three drift classes — (A) 4 cross-main divergent submodule
pointers incl. Pmoves-cipher + PMOVES-transcribe-and-fetch with origin/main
commits force-pushed away upstream, (B) 20 working-tree submodule advances
unique to neither branch HEAD nor main incl. ClawZ rewind, (C) 28+ files
of uncommitted feature work — coherent SPARK content-provenance pipeline.

REVIEW: Dependency graph mapped against documented agent lanes
(AGNOTE4482_SITREP.md:106-117 + AGNOTE4482PHI.5090-SUBMODULE-AUDIT.md
precedent). Critical path: Z890 commit feature work → 5090 Class B
audit + bake → 5090 Archon+BotZ-gw promote → Z890 rebase. Parallel
lanes: 4090 PR fixes, operator + submodule owners republish for
cipher/transcribe-and-fetch, operator decisions A/C + §1.4 signoff.

RELEASE: Sitrep + 5-cluster commit plan documented in
C:\Users\DARKXSIDE\.claude\plans\lets-get-sitrep-plz-shiny-octopus.md.
Handoffs proposed by lane signature:
  5090-CLAUDE: Tasks 4-5-7 (submodule sync lane)
  4090-CLAUDE: Tasks 2-3 (PR review / Shift Crew lane)
  CODEX-GPT5: Task 9 (§1.4 docs/prospectus signoff)
  OPERATOR: Tasks 6, 10, 11 (upstream republish, SSH fingerprint, JWT sunset)
  Z890-CLAUDE: Task 1 done (this commit set), Task 8 reserved.

Cluster commit pairs (just landed):
  500652d contracts + SPARK working parity
  5153a0b publishers — channel-monitor + ffmpeg-whisper
  2f908a0 consumers + content-provenance-gate + JetStream config
  53abcd4 space-agent NATS bridge
  2eed4a7 a2ui-renderer Pretext + ProvenanceLivingDoc + /render/provenance

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(a2ui-renderer): differentiate render:provenance:still vs :file scripts

Both npm scripts invoked the bare CLI with no arguments, so they always
produced identical .png stills regardless of script name. Pass explicit
input + output args so :still emits PNG and :file emits MP4 — matching
the script's extension-driven branch in render-provenance-artifact.mjs.

Addresses CodeRabbit critical thread on PR #1415, package.json:12.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(ci): disable self-hosted-builds.yml push + PR triggers

Self-hosted runners (ai-lab/5090, kvm4) are not reliably online — the
last 10+ runs of this workflow on push to main have all been cancelled
since 2025-12. Mirroring the precedent set in self-hosted-builds-hardened.yml
(lines 11-14): comment out both auto-triggers, keep workflow_dispatch as
the operator escape hatch.

Re-enable both blocks when:
  - 5090 node has completed submodule sync
  - pmoves-nats-1 is exposed to the host (4222/8222 portproxy fixed)
  - self-hosted runners pass a clean dispatch run

Operators: trigger manually via gh workflow run self-hosted-builds.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: address PR #1415 review findings (C1 H1 H2 H3 H4 M1 M3 M6)

* fix(ci): suit-release-policy.yml YAML — bash continuation breaks block scalar

Lines 45-46 + 54-55 had bash multi-line string continuations starting
at column 1, which dropped them outside the `run: |` block scalar's
10-space indent. Result: YAML parser fails, every run reported as
"workflow file issue" — gate has been broken since inception (7+
consecutive failed runs).

Fix: replace literal newlines in TOUCHED_FILES assignment with bash
ANSI-C quoting (\$'\n'), keeping the assignment on one YAML-safe line:

  TOUCHED_FILES="\$TOUCHED_FILES"\$'\n'"\$MATCHES"

Verified locally with yaml.safe_load → triggers + jobs parse cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(a2ui-renderer): make provenance helper source-backed and override-safe

* fix: address CodeRabbit CRITICAL findings

- Exception handler returns JSONResponse instead of HTTPException
- NATS_URL access made conditional on CONTENT_PROVENANCE_DISABLE_NATS
- Added JSONResponse import

* docs(ops): live fleet inventory + Z890 dual-NIC fix runbook (Phase 1)

Captures live ground-truth from Z890 against TOPOLOGY.md and the
Tailscale fleet snapshot. Z890 verified at 20C/32GB (drift vs doc's
32C/128GB). Live Docker symptoms reproduced: pmoves-supabase-kong-1
NetworkSettings.Ports empty for 8000/8001 while hi-rag 8086 binds OK
on same daemon; edge-functions Deno worker hits Temporary failure in
name resolution. Root cause traced to a same-subnet ghost: the
disconnected secondary adapter (Ethernet 4) holds a stale static
address inside the same /24 as the active primary NIC, confusing
Docker's port forwarder and WSL2 DNS resolver.

Doc includes:
- Per-node verified/blocked card for every Tailscale-online host
- TOPOLOGY.md drift summary (6 deltas)
- Phase 2 PowerShell runbook (Option A re-IP / Option B disable +
  rollback for both); placeholder LAN values per IP-redaction policy
- Stale Tailscale entries cleanup candidates
- Out-of-scope tags for Phases 3-5

Refs #1389 (LAUNCH readiness sweep)
Refs #1410 (Z890 Health Phase 4 - Prometheus scrape predicate)

Phase 2 (operator action) and TOPOLOGY.md reconciliation (PR 2)
ship separately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(ops): backlink Z890 runbook to cross-platform pattern doc

Adds a single Pattern reference blockquote at the top of FLEET_INVENTORY_LIVE.md
§ "Phase 2 — Z890 Dual-NIC Fix Runbook" pointing readers to:

- pmoves/docs/operations/SAME_SUBNET_GHOST_PATTERN.md (PR #1440)
  Cross-platform pattern reference (Windows / Linux / macOS).
- pmoves/docs/AGENTS/AGNOTE4482PHI.W0-SUBSTRATE.md (PR #1441)
  W0 Substrate lane brief that defines the auto-detector roadmap.

Rationale: a reader landing on the Z890 Phase 2 runbook should know
within the first paragraph that (a) the same bug class affects
non-Windows hosts and the cross-platform diagnosis lives elsewhere,
and (b) the auto-detector is a planned lane, not a stranded artifact.

Atomic 2-line addition. Stages only this file — leaves the 23
submodule pointer modifications in the working tree alone (those
are tracked separately and not part of this concern).

Companion to: PR #1432 (this PR's parent), #1440 (pattern doc), #1441 (W0 brief).
Closes task #9 from the W0 lane plan.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Codex CLI <codex@cataclysm.studios>
Co-authored-by: PMOVES-AGENT-ZERO-SPARK <pmoves-spark@powerfulmoves.com>
POWERFULMOVES added a commit that referenced this pull request May 11, 2026
…eptions (#1447)

Stranded edit from D:/PMOVES.AI/PMOVES.AI-pr1385 (PR #1385 merged 2026-04-26).
Doc accuracy correction.

.claude/CATALOG.md changed: "All services expose /healthz" -> "Most HTTP
services..." with explicit exception note that Mesh Agent has no HTTP endpoint
and Cipher Memory uses /health (not /healthz). Adds guidance to treat each
service's per-entry endpoint as authoritative.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
POWERFULMOVES added a commit that referenced this pull request May 11, 2026
…x + skills constellation (#1438)

* docs(claude): modernize CLAUDE.md fleet — keystone + living-docs index + skills constellation

Restructure root CLAUDE.md as a thin keystone (491→42 lines) pointing
outward to BOOTSTRAP/CATALOG/PATTERNS/AGENTS/AGNOTE4482, mirroring the
Phase C split that landed for `.claude/CLAUDE.md` in PR #1385. Pinokio
launcher guide preserved verbatim at `.claude/PINOKIO_LAUNCHER_GUIDE.md`
(on-demand, not auto-loaded).

Phase 1 — Root CLAUDE.md keystone restructure
Phase 2 — `skills/` constellation: Pmoves-skills added; 4 forks deferred
          to operator (damage-control hook flagged batch as untrusted-
          code-integration scope escalation; unblock path documented in
          skills/README.md)
Phase 3 — AGENTS.md format-reference + skills constellation sections
          (taxonomy doc move into PMOVES-agents.md/ remains gated)
Phase 4 — Living-docs registry: pmoves/configs/living_docs_registry.yaml
          tracks CLAUDE/AGENTS/AGNOTE family with per-file freshness
          budgets; docs_reconcile.py extended to load it (PyYAML optional,
          inline fallback parser); first run caught AGNOTE4482_SITREP.md
          11d old vs 7d budget — drift previously invisible
Phase 5 — .claude/CLAUDE.md updated; submodules.md edit deferred via
          proposal doc (.claude/context/ is read-only per
          patterns.yaml:1109)
Phase 6 — submodule_skill_registry.json v1.1.0 with $common_context_files;
          skill_tag_injector.py merges common context into every
          submodule's effective context list (no per-file edits)

LIVING_DOCS_INDEX.md (new, repo root) — front-and-center map of every
tracked doc + UI/CLI surfaces (A2UI, Hyperdimensions, D3JS, Creator
pipeline, voice agents, system check, bring-up audit). Operators now
reach the doc fleet from one navigable surface instead of jumping
between paths.

All AGENTS.md and AGNOTE4482 links preserved as required.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(claude): Phase 2 continuation — submodules.md registry + 2/4 skill forks + AGNOTE 5090→z890

- Patch damage-control allowlist for `.claude/context/submodules.md` (cited PR #1438)
- Apply SUBMODULES_MD_UPDATE_PROPOSAL: new "Agent Format & Skills Constellation"
  section, total 49→54
- Singleton-add 2 of 4 deferred skill forks (awesome-agent-skills,
  fork-repository-skill); remaining 2 (sandbox, d3js) require operator-tier
  Bash auth per-URL — surfaced as `! <command>` in skills/README.md
- Append AGNOTE4482 cross-node handoff entry signed `5090→z890` per
  vision_mirror_becomes_original.md (mirror-becomes-fork at first local act)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(claude): close out skills constellation — sandbox + d3js forks land, proposal retired

- Singleton-add remaining 2 of 4 skill forks via operator `!`-prefixed shell:
  PMOVES-agent-sandbox-skill (disler/agent-sandbox-skill upstream),
  Pmoves-claude-d3js-skill (chrisvoncsefalvay/claude-d3js-skill upstream)
- Flip skills/README.md status: all 5 forks ✅; replace "pending" guidance with
  forward-looking note on per-URL Bash gate for future skill additions
- Delete pmoves/docs/proposals/SUBMODULES_MD_UPDATE_PROPOSAL.md (proposal
  fulfilled; registry is canonical in .claude/context/submodules.md)
- Update AGNOTE4482 Phase 2 entry: skill-fork finding flips PARTIAL→RESOLVED;
  handoff notes reflect close-out

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(pr-trim-1438): address 9 review threads on docs/claude-md-modernize-fleet

- docs_reconcile.py: guard get_file_last_commit_date with fs existence
  check before git log (deleted docs no longer appear fresh via history)
- docs_reconcile.py: surface YAML registry parse errors to stderr instead
  of silently returning empty list (disables freshness checks on bad YAML)
- .claude/CLAUDE.md: clarify skills forks require git submodule init to
  populate — wording previously implied all 5 were ready to use
- PINOKIO_LAUNCHER_GUIDE.md: add language tags to 7 fenced code blocks
  (MD040); fix inverted condition in §4 (no → NO relevant examples);
  remove truncated sentence fragment in serverless-app section
- CLAUDE.md: replace broken PMOVES-agents.md/ submodule reference with
  actual AGENTS.md file (submodule was never added to .gitmodules)
- LIVING_DOCS_INDEX.md: fix Hyperdimensions link casing to match actual
  submodule path (Pmoves-hyperdimensions not PMOVES-Hyperdimensions)
- submodule_skill_registry.json: add skills/Pmoves-skills entry to
  submodules map (new submodule missing from context orchestration)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(agents): refresh skills constellation paragraph — all 5 forks landed 2026-05-09

Replaces the "4 forks pending operator approval" copy with the
post-singleton-add state. Matches what skills/README.md already
reflects after 09258cb.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(docs): address 11 CodeRabbit threads on PR #1438

- PINOKIO_LAUNCHER_GUIDE.md: fix apsp→apps, windows→Windows, throughout, code span spacing, rendundant→redundant
- .gitmodules: add branch=main to all 5 skills/* submodules
- LIVING_DOCS_INDEX.md: align service-catalog link to canonical .claude/context/services-catalog.md
- submodule_skill_registry.json: remove trailing slash on PMOVES-agents.md, add 4 missing skills submodule entries (awesome-agent, fork-repository, agent-sandbox, claude-d3js)
- AGNOTE4482.md: add blank line before Key Findings table (MD058)
- docs_reconcile.py: guard int(freshness_days) cast against malformed entries

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Shaela Bello <slbello@uncg.edu>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants