8000 Mission layer: journeys, baseline, assess and evaluate (M9.2, M9.3, M9.10) by adeelahmad · Pull Request #77 · adeelahmad/aloop · GitHub
[go: up one dir, main page]

Skip to content
8000

Mission layer: journeys, baseline, assess and evaluate (M9.2, M9.3, M9.10) - #77

Merged
adeelahmad merged 2 commits into
masterfrom
claude/mission-layer-plan-6re55w
Oct 20, 2026
Merged

adeelahmad merged 2 commits into
masterfrom
claude/mission-layer-plan-6re55w

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Before: the mission layer had only its core (aloop mission init / check / approve / status). There were no user journeys and no baseline, and nothing measured the product or listed what was left to earn.

After: aloop mission journeys, baseline, assess and evaluate run the evaluation half of ROADMAP §4.12. Journeys are user paths with GA4-valid step events, research-sourced refs and a pinned runner. A baseline is measured twice within tolerance, confirmed by a human, and replaced only with evidence; an autonomous mission applies a replacement after its veto window. The state is measured exactly as the baseline froze it. The gap list is a pure function of the state, the baseline and the goal, and evaluate check recomputes it.

An adversarial review (4 lenses, 43 findings, each reproduced) shaped the design: gates decide from the committed, hash-chained docs/agents/mission/ledger.jsonl, never from a status field, because status is outside the digest.

How: four areas in plugin/mission/ plus _runner.py, built on the M9.0 contract. _mission.py gains the ledger (record, records, newest, covered, ledger_problems; each row carries the hash of the row it follows). The review's findings, now tests:

  • Forged or skipped measurements: confirm/apply need a baseline.measured record for the exact content, and the veto window starts at that record.
  • Rollbacks: the current version is the one the newest confirmation names; only the newest approval counts for the mission; a replacement must supersede the current version.
  • Journeys:
    • a journey never replaces itself;
    • a replacement is pinned at the content its retirement recorded;
    • an approval covers one exact (old, replacement) pair.
  • Vetoes: a veto binds the content, so the same proposal cannot come back under a new id.
  • Runner:
    • the runner's script is pinned by sha256, and at least one tool by version, matched whole;
    • NaN, unreported values and malformed files block instead of passing or crashing.
  • RED test: the RED needs a journey that demonstrably fails; a pending judge does not count.
  • Evidence: evidence refs must resolve.
  • Restore: baseline restore lets the human reinstate an archived version.

Still open, recorded in ROADMAP:

  • A well-formed row appended to the ledger is not detectable here. M9.9's path guard and M9.17's prompt provenance close it.
  • Rival values keyed per benchmark are not in place yet.

Evidence

  • mission-core 10, mission-journeys 7, mission-baseline 11 and mission-evaluate 6 checks pass.
  • make ci passes locally: lint, tests, eval-validate, test-hosts and conformance 78/78 (4m44s).

Generated by Claude Code

…9.10)

aloop mission journeys, baseline, assess and evaluate: user journeys
with pinned runners and research-sourced refs, a baseline measured twice
within tolerance and confirmed by a human, the state measured exactly as
the baseline froze it, and a gap list that evaluate check recomputes.

Hardened after an adversarial review (43 findings, each reproduced and
now a test): gates decide from the committed, hash-chained ledger.jsonl,
never from a status field; measurements, vetoes, retirements and the
current version are records; runner scripts are pinned by sha256; NaN,
unreported values and malformed files block instead of passing or
crashing. Adds baseline restore.

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.com>
Claude-Session: https://claude.ai/code/session_018RxETAY6S1gcmdctBK8a8Z
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