Skip to content

CSD-130 Goals ceremony (CSD/4, agreed with CIRISServer) + catalogue v6 pin - #260

Draft
emooreatx wants to merge 4 commits into
mainfrom
feat/csd-130-goals
Draft

emooreatx wants to merge 4 commits into
mainfrom
feat/csd-130-goals

Conversation

@emooreatx

@emooreatx emooreatx commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

This is the client half of the Goals ceremony contract. CIRISServer's half is FSD/GOALS_CEREMONY.md plus catalogue entry T21, led by the server session.

The ruling (Eric): "I will sign off on the goals in a new server ceremony, make sure server and client have a goals CSD/4 doc they agree on." The locked row text is from CIRISAgent FSD/SAFETY_EVIDENCE_BLOBS.md §4.2 (PR #1332, 71dbb27f8).

What the card says

  • A Goals card on Accord, beside "Bless CI workers". It shows the staged goal, the avoidance goal, the approach, and one method plus progress measure per battery language. The text is read-only, and each row carries the attestation id fixed at staging.
  • Holders confirm by proposal_digest. The node scrub-signs each row's envelope with the holder's hardware, because persist counts quorum per row. The client never sends text.
  • A halted root holds the ceremony. Propose and cosign answer root_halted; the pending read carries blocked_by: root_halted; nothing is declared below quorum.
  • Two separate evidence joins: offered against, from the evidence row, and counted by, from the progress measure. evidence_not_held is never read as "none".

Agreed with CIRISServer:

  • Card: number CSD-130, topology T21.
  • Atoms: goal.staged, goal.proposed, goal.declared, evidence.offered and evidence.counted.
  • Tests: goals_staged, goals_pending, goals_held_by_halt, goals_declared, evidence_joins.
  • Contract: the routes, shapes and refusal tokens in §3.

Why this is a draft, and stays sketched

  • The atoms must land in CIRISConstitution's vocabulary first. Only then can the CSD/4 entry in §6 become a checked csd:tests block.
  • The founder-quorum declarer needs persist's community issuer for goal rows: v61 at the earliest.
  • Open for CIRISAgent: the method rung and the battery language list.

Checks: check_csd_v3 on the card, gen_csd_roster --check (README regenerated), check_csd_routes, check_csd4: all green.

Update — catalogue v6 (58fbe84)

  • packaging/csd4/ is re-vendored from CIRISServer#833 @ a7dc2539, pre-release: CC rc14's vocabulary v6 with the goal atoms and T21.
  • CSD-130's csd:tests is now typed: the server's requirements row byte for byte, plus catalogue_version: 6. check_csd4 agrees; the four tests are reported as reached past the known-red routes step, CIRISServer#834.
  • check_csd4 takes the closed catalogue from the vendored trace: T0–T19, T20 reserved, then later entries.
  • CSD-095, its fixture and the tests move to v6.
  • The card lists T21's full promises, including amend/withdraw/recant, and the evidence joins are CIRISAgent's realization.
  • Merge only after #833 merges. Then re-vendor --from-release once a server release carries v6.
  • Checks: every card, check_csd4 (cards, --self-test, --verify-pin), roster, routes, pytest testing/ 737 passed.

🤖 Generated with Claude Code

https://claude.ai/code/session_019ZeGbVvLGSbRHPJQJA1dao

emooreatx and others added 4 commits October 29, 2026 10:13
…ounder quorum

A CSD/4 card for the Goals ceremony on the Accord screen, agreed with
CIRISServer (FSD/GOALS_CEREMONY.md, catalogue T21): the locked Goal,
avoidance goal, approach, and per-language method and progress-measure
rows (CIRISAgent FSD/SAFETY_EVIDENCE_BLOBS.md §4.2) rendered read-only;
holders confirm the staged set by proposal_digest and the node signs
each row's envelope (quorum is per row); a halted root holds the
ceremony; the evidence joins, offered against and counted by, are
shown separately.

Stage `sketched`: the routes are agreed and unreleased, and the goal
atoms are not yet in the topology vocabulary, so the CSD/4 entry sits in
§6 and is typed as `csd:tests` once CIRISConstitution adds the atoms and
the catalogue pin moves. The founder-quorum declarer waits on persist's
community issuer for goal rows (v61 at the earliest).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZeGbVvLGSbRHPJQJA1dao
…r byte

Holders sign at the canonical; rows carry authority_id ciris-canonical
(CIRISPersist#1154); the languages are the battery's 29
{lang}_mental_health cells; goals_declared filters by
declarer=ciris-canonical; ${GOAL_ID} from the build's values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZeGbVvLGSbRHPJQJA1dao
…3.1.9.3 rc14

Agreed with CIRISServer#833 @ b2289fd0. Remaining blockers: the rc14 pin
(vocabulary v6) and the persist release carrying CIRISPersist#1154.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZeGbVvLGSbRHPJQJA1dao
Re-vendors packaging/csd4/ from CIRISServer#833 @ a7dc2539 (pre-release;
CC rc14's vocabulary v6, which adds the goal atoms and T21). The CSD-130
block is the server's requirements row byte for byte plus
catalogue_version: 6; check_csd4 reports its four tests as reached past
the known-red routes step (CIRISServer#834), not as failures.

- check_csd4: the closed catalogue is the one its trace ships (T0–T19
  always, T20 reserved, later entries by version), not a hardcoded
  T0–T19, so T21 is accepted and T20 is still refused.
- CSD-095, its self-test fixture and the tests move to catalogue
  version 6 (CSD-095's atoms and row are unchanged in v6).
- CSD-130: T21's full promises, the evidence joins as CIRISAgent's
  realization, the goal's later life (amend, withdraw, recant), and
  `proposed:` state tags until the UI exists.

The pin follows #833 until it merges; it moves to --from-release once a
CIRISServer release carries the catalogue. check_csd4 (cards,
--self-test, --verify-pin), check_csd_v3 on every card, roster, routes,
pytest testing/ (737 passed): all green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ZeGbVvLGSbRHPJQJA1dao
@emooreatx emooreatx changed the title docs(csd): CSD-130 — Goals ceremony (CSD/4, agreed with CIRISServer) CSD-130 Goals ceremony (CSD/4, agreed with CIRISServer) + catalogue v6 pin Oct 29, 2026

This branch has not been deployed

No deployments
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.

1 participant