Files
reuse-surface/AGENTS.md
tegwick cbcd097214
Some checks failed
ci / validate-registry (push) Has been cancelled
Align naming with coulomb.social reuse-surface conventions
Use reuse.coulomb.social, REUSE_SURFACE_URL/TOKEN env vars, reuse-surface
image and reuse-surface-env secret. Replace reuse-surface-hub entrypoint with
reuse-surface serve; CLI uses --base-url.
2026-06-15 09:02:02 +02:00

9.4 KiB

reuse-surface — Agent Instructions

Repo Identity

Purpose: Capability registry for planning and implementation reuse based on discovery and delivery maturity.

Domain: helix_forge Repo slug: reuse-surface Topic ID: f39fa2a3-c491-414c-a91b-b4c5fcc6139c Workplan prefix: REUSE-WP-


State Hub Integration

The Custodian State Hub tracks work across all domains. Interact via HTTP REST — there is no MCP server for Codex agents.

Context URL
Local workstation http://127.0.0.1:8000
Remote via tunnel http://127.0.0.1:18000

Orient at session start

# Offline brief — works without hub connection
cat .custodian-brief.md

# Active workstreams for this domain
curl -s "http://127.0.0.1:8000/workstreams/?topic_id=f39fa2a3-c491-414c-a91b-b4c5fcc6139c&status=active" \
  | python3 -m json.tool

# Check inbox
curl -s "http://127.0.0.1:8000/messages/?to_agent=reuse-surface&unread_only=true" \
  | python3 -m json.tool

Mark a message read:

curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
  -H "Content-Type: application/json" -d '{}'

Log progress (required at session close)

curl -s -X POST http://127.0.0.1:8000/progress/ \
  -H "Content-Type: application/json" \
  -d '{
    "summary": "what was done",
    "event_type": "note",
    "author": "codex",
    "workstream_id": "<uuid>",
    "task_id": "<uuid>"
  }'

Omit workstream_id / task_id when not applicable.

Update task status

curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
  -H "Content-Type: application/json" \
  -d '{"status": "progress"}'
# values: wait | todo | progress | done | cancel

Flag a task for human review

curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
  -H "Content-Type: application/json" \
  -d '{"needs_human": true, "intervention_note": "reason"}'

Session Protocol

Start:

  1. cat .custodian-brief.md — domain goal and open workstreams (offline-safe)
  2. Check inbox: GET /messages/?to_agent=reuse-surface&unread_only=true; mark read
  3. Scan workplans: ls workplans/ — note status: ready, active, or blocked files and open tasks
  4. Check human-needed tasks: GET /tasks/?needs_human=true

During work:

  • Update task statuses in workplan files as tasks progress
  • Record significant decisions via POST /decisions/

Close:

  1. Update workplan file task statuses to reflect progress
  2. Log: POST /progress/ with a summary of what changed
  3. Note for the custodian operator: after workplan file changes, run from ~/state-hub:
    make fix-consistency REPO=reuse-surface
    
    This syncs task status from files into the hub DB.

Local Developer Workflow

The repository is primarily documentation-first with a small Python CLI for registry validate, query, and export. There is no long-running service.

Install

python3 -m venv .venv
.venv/bin/pip install -e .

Build

No separate build step. Treat Markdown, YAML, and workplan edits as source artifacts.

Test / lint

# Registry validation (schema + index drift)
.venv/bin/reuse-surface validate

# Overlap, catalog, federation, and graph
.venv/bin/reuse-surface overlaps
.venv/bin/reuse-surface catalog
.venv/bin/reuse-surface federation compose
.venv/bin/reuse-surface graph --check

# Federation service (local)
# REUSE_SURFACE_TOKEN=dev-token reuse-surface serve

# Hub CLI (against deployed or local service)
# REUSE_SURFACE_URL=http://127.0.0.1:8000 reuse-surface hub status

# Automated tests
.venv/bin/pytest -q

# Repository hygiene
rg --files
git diff --check

When workplan files change, sync ADR-001 file state into State Hub:

curl -s -X POST "http://127.0.0.1:8000/repos/reuse-surface/sync?fix=true" \
  | python3 -m json.tool

If the HTTP sync endpoint is unavailable, run the consistency script from the State Hub checkout:

cd ~/state-hub
.venv/bin/python scripts/consistency_check.py --repo reuse-surface --fix
.venv/bin/python scripts/consistency_check.py --repo reuse-surface

The generated instruction in older workplans says make fix-consistency REPO=reuse-surface; that is still valid when uv is installed and on PATH. On this workstation, the .venv/bin/python fallback has been verified.

CI runs reuse-surface validate on push and pull requests via .gitea/workflows/ci.yml.

Run

There is no local service to run from this repository.

Documentation Review Checklist

  • Keep INTENT.md, SCOPE.md, and specs/ aligned on the registry-first reuse boundary.
  • Keep maturity definitions in specs/CapabilityMaturityStandard.md consistent with INTENT.md and specs/ProductRequirementsDocument.md.
  • Keep registry entries, indexes, and schemas in registry/, schemas/, and templates/ current when capabilities change.
  • Record implementation ideas in workplans, not as premature runtime code in this repository.

Capability Registry

Before building or documenting a new reusable behavior, query the registry to avoid duplication and to select the best existing capability for planning or implementation reuse.

Orient

# Fast discovery surface — read federated index when multi-repo
cat registry/indexes/federated.yaml
cat registry/indexes/capabilities.yaml

# CLI discovery and export
.venv/bin/reuse-surface query --discovery-min D4
.venv/bin/reuse-surface export --format yaml

# Authoring template and schema
cat templates/capability-entry.template.md
cat schemas/capability.schema.yaml

# Validation and search guidance
cat registry/README.md
cat tools/README.md

Query workflow

  1. Run .venv/bin/reuse-surface query with filters, or read the index directly.
  2. Filter by vector, tags, consumption_modes, domain, or summary.
  3. Open only matching files under registry/capabilities/.
  4. Compare candidates using discovery, external_evidence, availability, and relations from the entry front matter.
  5. Prefer planning reuse when discovery is strong (D3+, especially D5+).
  6. Prefer implementation reuse only when availability is consumable (A2+ code, A3+ CLI, A4+ API/SDK).

Add a new capability

  1. Search the index for overlap (UC-RS-015) before creating a new entry.
  2. Copy templates/capability-entry.template.md to registry/capabilities/capability.<domain>.<name>.md.
  3. Start at D0 / A0 / C0 / R0 when evidence is minimal; keep gaps explicit.
  4. Add the entry to registry/indexes/capabilities.yaml.
  5. Run .venv/bin/reuse-surface validate.

Promote a capability

  1. Attach evidence required by specs/CapabilityMaturityStandard.md for the target level.
  2. Update maturity for discovery/availability and external_evidence for completeness/reliability separately.
  3. Refresh the index vector and record rationale in the entry body.
  4. Do not treat higher availability as proof of reliability or completeness.

MVP acceptance mapping

Acceptance criterion Registry surface
Add D0/A0/C0/R0 with minimal friction template + index + registry README
Promote through discovery levels entry front matter + maturity standard
Identify current consumption mode availability + index consumption_modes
Record expectations and broken expectations external_evidence.completeness
Record reliability evidence external_evidence.reliability
Search by maturity and availability reuse-surface query or index filters
Compare candidates entry vectors + relations + README guidance
Avoid duplicate capabilities index search before add

Workplan Convention (ADR-001)

Work items originate as files in this repo — not in the hub. The hub is a read/cache/index layer that rebuilds from files.

File location: workplans/REUSE-WP-NNNN-<slug>.md

Archived location: finished workplans may move to workplans/archived/YYMMDD-REUSE-WP-NNNN-<slug>.md. The YYMMDD prefix is the completion/archive date; the frontmatter id does not change.

Ad Hoc Tasks: small opportunistic fixes discovered during a session use workplans/ADHOC-YYYY-MM-DD.md with task ids ADHOC-YYYY-MM-DD-T01, etc. Use this only for low-risk work completed directly; create a normal workplan for anything needing analysis, design, approval, dependencies, or multiple phases.

Frontmatter:

---
id: REUSE-WP-NNNN
type: workplan
title: "..."
domain: helix_forge
repo: reuse-surface
status: proposed | ready | active | blocked | backlog | finished | archived
owner: codex
topic_slug: ...
created: "YYYY-MM-DD"
updated: "YYYY-MM-DD"
state_hub_workstream_id: "<uuid>"   # written by fix-consistency — do not edit
---

Use proposed for a new draft, ready after review against current repo state, and finished after implementation. stalled and needs_review are derived health labels, not frontmatter statuses.

Task block format (one per ## section):

## Task Title

` ` `task
id: REUSE-WP-NNNN-T01
status: wait | todo | progress | done | cancel
priority: high | medium | low
state_hub_task_id: "<uuid>"         # written by fix-consistency — do not edit
` ` `

Task description text.

Status progression: todoprogressdone; use wait for waiting/blocked work and cancel for stopped work.

To create a new workplan:

  1. Write the file following the format above
  2. Notify the custodian operator to run make fix-consistency REPO=reuse-surface (or send a message to the hub agent via POST /messages/)