Documentation
Reference-agent scaffolders
Project-Agent / 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
- Copy
_scaffold_ic_templates.pyas a starting point. - Replace the
AGENTSlist with your specs. Each entry needs:
id,display_name,function,cell,shape,taglinedomain,input_label,output_label,result_field,verbdeclared_systems(list of (connector, actions, objects, classification))approval_writes(list of connectors that need explicit-escalate rules)frameworks,fixture_inputs,compose_summary,intent_examples
- Set
ROOT = Path(__file__).resolve().parent.parentso the
scaffolder writes back to reference-agents/ regardless of invocation directory.
- 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 ``
- 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.