Public documentation for governed AI labor
SDKs/Governance/Connectors
Arx / Docs / Reference-agent scaffolders

Documentation

Reference-agent scaffolders

Project-Agent / reference-agents/_scaffolders/README.md

Project-Agent reference-agents reference-agents/_scaffolders/README.md

Scaffolders that generate reference-agents/<agent-id>/ dirs from spec dicts. Each one mirrors the canonical structure of reference-agents/sales-research/ (the boilerplate template).

All scaffolders are idempotent — re-running re-emits the same agent dirs. Safe to re-run after editing any AGENTS spec.

What's here

| Scaffolder | Phase | Coverage | Agents emitted | |---|---|---|---| | _scaffold_ic_templates.py | Phase 1 / Commit 4 | Eng/Sales/CS/Finance × IC × R/P/C | 12 | | _scaffold_ic_templates_round2.py | Phase 3 / Commit 2 | Marketing/Operations/Support/Legal × IC × R/P/C | 12 | | _scaffold_manager_templates.py | Phase 3 / Commit 1 | Eng/Sales/CS/Finance × Manager × R/P/C | 12 | | _backfill_framework_conformance.py | Phase 2 / Commit 2 | Adds level/shape/cell + termination_attestation_required to legacy manifests | (in-place patch) |

The two pre-existing scaffolders that are NOT in this directory:

  • reference-agents/_scaffold_workforce_agents.py — Sprint 1 of

the workforce-vocabulary build. Lives at reference-agents/ root because it predates this organization.

  • reference-agents/_scaffold_cisco_agents.py — Sprint 1 of the

Cisco engagement bundle. Same reason.

Both produce manifests that conform to the framework after _backfill_framework_conformance.py runs.

Invocation

Each scaffolder uses Path(__file__).resolve().parent.parent to locate the reference-agents/ directory regardless of where it's run from.

```bash

From the repo root:

python reference-agents/_scaffolders/_scaffold_ic_templates.py python reference-agents/_scaffolders/_scaffold_manager_templates.py python reference-agents/_scaffolders/_scaffold_ic_templates_round2.py python reference-agents/_scaffolders/_backfill_framework_conformance.py

Or from anywhere — the scripts compute their own paths:

cd /tmp && python /path/to/reference-agents/_scaffolders/_scaffold_ic_templates.py ```

Adding a new scaffolder

  1. Copy _scaffold_ic_templates.py as a starting point.
  2. Replace the AGENTS list with your specs. Each entry needs:
  • id, display_name, function, cell, shape, tagline
  • domain, input_label, output_label, result_field, verb
  • declared_systems (list of (connector, actions, objects, classification))
  • approval_writes (list of connectors that need explicit-escalate rules)
  • frameworks, fixture_inputs, compose_summary, intent_examples
  1. Set ROOT = Path(__file__).resolve().parent.parent so the

scaffolder writes back to reference-agents/ regardless of invocation directory.

  1. Run + validate the manifests:

``bash python reference-agents/_scaffolders/_scaffold_<your_name>.py python -m tools.arxctl validate-manifests \ reference-agents/<one-of-your-new-agents>/manifests/job_description.yaml ``

  1. Add an entry to this README.

Validation

After running any scaffolder, re-run the manifest validator against the full repo to catch drift:

``bash python tools/arxctl/test_manifest_validator.py ``

The validator's test_all_repo_reference_manifests_pass test walks every reference-agents/*/manifests/job_description.yaml. Should return 11/11 passing.