Repository navigation
Mission loop end to end offline (M9.13); a baseline binds the direction (M9.25); ethics rows in the ledger (M9.24) - #91
Merged
Conversation
…on (M9.25); ethics rows in the ledger (M9.24) - mission-e2e.test.py drives `mission tick` from a new mission through research, a journey, a confirmed baseline, a gap list, a goal, its intents and one sprint per intent to GOAL MET and RESEARCH, with zero tokens. - A baseline and its state carry direction_sha256 = M.direction(mission), so a new budget, deadline or cadence keeps the confirmed baseline. - ethics.reviewed/ethics.blocked are ledger rows; M.history reads the ledger first (a run-log copy of a row is ignored) and a broken ledger makes every ethics verdict broken. - The mission skill relays the human's grant line and the command the ASK names after "then". - ROADMAP M9.43: a goal should bind the direction too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018RxETAY6S1gcmdctBK8a8Z
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic. 8000 com> Claude-Session: https://claude.ai/code/session_018RxETAY6S1gcmdctBK8a8Z
…eval (#87) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018RxETAY6S1gcmdctBK8a8Z
adeelahmad
pushed a commit
that referenced
this pull request
Oct 20, 2026
…M9.24/M9.25) into the dsh host README takes the new front page and adds DeepSeek Harness to its host list, install notes, harness table, CI notes and limitations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AiLhAWTRtwbgMCDQNJUbea
This was referenced Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Before: nothing ran the mission layer end to end. Each area had its own suite, but no test proved that
mission tickcould take a new mission all the way to a met goal. Two gaps also showed up on the way:After:
mission-e2e.test.pydrives the whole loop offline with zero tokens. Each step is the actionmission tickhands out, done through the CLI the way its role or the human does it:CONFIRM_MISSION → ETHICS_REVIEW → RESEARCH → DEFINE_JOURNEYS → BASELINE → CONFIRM_BASELINE → ASSESS → EVALUATE → DERIVE_GOAL → ETHICS_REVIEW (goal) → PLAN_INTENTS → SPRINT → WAIT → SPRINT → WAIT → ASSESS → EVALUATE → GOAL MET →
goal close→ RESEARCH (raise the bar)A raised budget keeps the confirmed baseline, and a fresh clone hands out the same action.
How:
M.direction(mission)hashesmission_id,statement,modeandconstraints. A baseline and its state carrydirection_sha256. A new budget, deadline or cadence keeps the baseline once the mission is approved again. A new direction still asks for a new version, and an unapproved mission decides nothing.ethics.reviewedandethics.blockedare written withM.record, so they are ledger rows. Ethics readsM.history(cwd): the ledger's intact rows, plus the run-log events that are not ledger rows. A run-log copy of a ledger row is ignored, whatever it says.ethics.verdictreturnsbroken(exit 2) while the ledger has any problem, so nothing decides from what is left of a cut chain. Open in M9.24: the--forcegrant andmission.budget_exhausted. Core agent principles and the one-way / two-way door rule (M9.30, M9.38); hard-lined goals retire (M9.29) #86 also moves ethics to the ledger; whichever lands second keeps the stricter rule./aloop:missionnow says how a grant is made: relay the exactthey replyline, and once the human has typed it, run the command the ASK names after "then" (a spoon-fed pick namesgoal approve).research new / archive --file / claim / check), and the real Aladdin sprint boundaries:goal next, thenids freeze(which recordsplan.createdfor the normalized intent), thenstats sprint-close.Adversarial review before opening (3 reviewers, each finding re-checked by a skeptic). Confirmed and fixed here, each with a test that failed first:
mission-ethicscheck 13).broken(check 13).mission-skillchecks it against the messages the CLI prints.Refuted or out of scope: a raised budget voiding an active goal is older than this diff; it is now ROADMAP M9.43.
Evidence
mission-e2e.test.py: 8 checks, 3 of 3 repeat runs green locally.mission-baseline.test.pycheck 5 (M9.25).mission-ethics.test.pycheck 12 (a run log moved aside decides the same) and check 13 (the ledger decides).mission-*.test.pypasses locally on master with Mission layer M9.9: the six fixed roles, their wiring and two gates #74 (15 suites, includingmission-roles32 andmission-scope-bash), plusmake pycheck,make json,make version-check,make test-hostsandcheck-tracking(78 requirements).Generated by Claude Code