New Proposal (Developers)
Developer-authored proposals should include the exact gates and test impact.
Checklist
This is intentionally manual: copy templates, answer the Q/A, and submit for review.
Focus: define gates, attach reproducible artifacts under audit/proposals/<SCP>/..., and reference adoption log/spine changes when needed.
- Create folder
proposals/SCP-YYYY-NNN-slug/ - Copy the appropriate template files (
proposal.yamlandevidence_refs.yaml) - Fill required fields:
scp_id,proposer,affected_controls,claim - open a PR
Q/A Session (your inputs)
- Q: What is the
scp_id? A: PickSCP-YYYY-NNN-slug. - Q: Who is the proposer? A: Fill
proposer. - Q: Which obligations/controls are affected? A: Fill
affected_controls. - Q: What is your claim? A: Fill
claimwith a single testable sentence. - Q: What gates prove the change is safe? A: Fill
gateswith the exact commands and the expected outcomes. - Q: How can someone reproduce the result? A: Put instructions and artifacts under
audit/proposals/<SCP>/and reference them inevidence_refs.yaml. - Q: Does this require adoption log/spine changes? A: If yes, list the touched paths in
spine_or_adoption_log_changes.
Copy/Paste Package (output)
Use this as your starting point. The source-of-truth repo templates live under docs/dao/templates/.
Folder tree
proposals/
SCP-YYYY-NNN-<slug>/
proposal.yaml
evidence_refs.yaml
audit/
proposals/
SCP-YYYY-NNN-<slug>/
README.md
(repro steps, diffs, logs, exports, etc)
proposal.yaml
schema_version: "1.0"
# Required
scp_id: "SCP-YYYY-NNN-<slug>"
proposer:
name: "<name>"
contact: "<email or handle>"
affected_controls:
- "<obligation/control reference>"
claim: |
<One clear sentence: what should change?>
# Developer-specific: define gates and where reproducible artifacts live.
gates:
- name: "ruff"
command: "python -m ruff check"
expected: "pass"
- name: "pytest"
command: "pytest"
expected: "pass"
- name: "portable_bundle"
command: "CLEAN=1 bash scripts/build_site_bundle.sh"
expected: "link_check.json status PASS; manifest.sha256 updated"
reproducible_artifacts:
required_root: "audit/proposals/SCP-YYYY-NNN-<slug>/"
required_files:
- "audit/proposals/SCP-YYYY-NNN-<slug>/README.md"
spine_or_adoption_log_changes:
required: false
paths:
- "<only if needed: adopt/... or adopted/... or docs/regulation/...>"
notes: |
<Optional: implementation notes>
evidence_refs.yaml
schema_version: "1.0"
# Required
scp_id: "SCP-YYYY-NNN-<slug>"
evidence:
- id: "E1"
kind: "repo_path" # repo_path | bundle_path | external
ref: "<e.g. audit/proposals/SCP-YYYY-NNN-<slug>/README.md>"
sha256: "" # Optional: pin a specific file version
note: "<Why this evidence matters / how to reproduce>"
audit/proposals/<SCP>/README.md (developers)
# Reproducible artifacts (SCP)
SCP: SCP-YYYY-NNN-<slug>
## Goal
- Explain what change is being validated.
## How to reproduce
1) Run the relevant tests (ruff/pytest).
2) Build the portable bundle.
3) Verify link_check.json is PASS and manifest.sha256 updated.
## Included artifacts
- Diffs / patches (if applicable)
- Logs / exports / screenshots (if applicable)
- Notes that tie artifacts back to proposal.yaml claims
Related Views
- DAO (Stakeholders)
- Task view — what “done” means
- Agentic view — roles, deterministic run contract, inspection invariants
- Digital twin view — change triggers and rerun rules