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 h 6281 ave 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