8000 Mission loop takes its ethics facts from the ethics verdict (M9.23) by adeelahmad · Pull Request #85 · adeelahmad/aloop · GitHub
[go: up one dir, main page]

Skip to content

Mission loop takes its ethics facts from the ethics verdict (M9.23) - #85

Merged
adeelahmad merged 1 commit into
masterfrom
claude/m9-loop-skill-zkmelo
Oct 20, 2026
Merged

adeelahmad merged 1 commit into
masterfrom
claude/m9-loop-skill-zkmelo

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Before: mission tick read the ethics events itself, with its own copy of the rules. It missed two cases the gate (mission ethics) catches:

  • Repeated words. A goal derived again under a new id with a hard-lined goal's words got a fresh ETHICS_REVIEW instead of being hard.
  • Edited reviews. A review edited after it was recorded still counted.

After: tick asks ethics.verdict(cwd, kind, id) for the mission and each goal, so the loop and the gate follow one rule.

How.

  • Verdict mapping (ethics_of in plugin/mission/tick.py):
    • none → ETHICS_REVIEW.
    • pending → ASK_CONSENT, naming aloop mission ethics consent --subject … --by --reason.
    • hard → BLOCKED for the mission. For a goal, it is re-derived (counted toward 3 failed goals), or BLOCKED while its sprint runs.
    • broken or unresolved → BLOCKED for the human, with the gate's problem.
    • ok → go on.
  • Fail closed. A committed hard review still holds without the run log (from Mission loop review fixes (M9.8): restore, unmeasurable and vetoed proposals, block keys #84).
  • Lazy verdicts. Verdicts are cached per content and computed only for the subjects the rules reach. The facts fingerprint is finished after the rules, so it includes them.
  • Tests. The test helper now records reviews and consents through the real aloop mission ethics new / record / consent. The hand-written events are gone.
  • Docs. ROADMAP M9.23 is done, plus TRACKING, CHANGELOG, plugin/mission/README.md and the tick docstring.

Evidence.

  • mission-tick.test.py: 28 checks.
  • New section 26 (hard words under a new goal id → DERIVE_GOAL, not ETHICS_REVIEW) fails on the previous tick.py, and now passes.
  • Section 4's new assertions (a consent naming the CLI; an edited review → BLOCKED) also fail on the previous tick.py, and now pass.
  • Every mission-*.test.py passes on this branch after Mission goals and the Aladdin handoff (M9.11) #79 (goals), as do make pycheck and check-tracking.

Generated by Claude Code

tick asks ethics.verdict for the mission and each goal (none, pending,
hard, broken) instead of reading ethics events itself, so a goal derived
again with a hard-lined goal's words is hard at once and a review edited
after it was recorded blocks for the human. A committed hard review still
fails closed. The test helper records reviews through mission ethics.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aw6CiQcdpzdzZZXKf8WbUM
@adeelahmad
adeelahmad merged commit a2bed9a into master Oct 20, 2026
5 checks passed
adeelahmad pushed a commit that referenced this pull request Oct 20, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0197nSutKR1QAAqgJhFZ8fPj
adeelahmad pushed a commit that referenced this pull request Oct 20, 2026
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.

2 participants

0