Skip to content

Goal 1 — 404-fixture scorecard + v0.5 baseline run - #7

Open
k-rutten wants to merge 2 commits into
mainfrom
goal-404-baseline
Open

Goal 1 — 404-fixture scorecard + v0.5 baseline run#7
k-rutten wants to merge 2 commits into
mainfrom
goal-404-baseline

Conversation

@k-rutten

@k-rutten k-rutten commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

What

Introduces the objectives-first iteration method (agreed 2026-07-27) with its first artifact: GOALS.md — Goal 1 (404 fixture: 0/6 historical failure modes) with a deterministic scorecard, fixed before the baseline run — plus the baseline results and three LESSONS entries.

Baseline result (v0.5)

O0 halt-on-unmapped O1 zero raw values O2 single styling API O3 literal fidelity O4 non-destructive writes O5 visual fidelity
not measurable
  • O1 fail, substantive: illustration/absolute geometry emitted ~50 inline px literals — no rule home in rule Initial skill v0.1 — SKILL.md, README.md, CLAUDE.md #2. Plus scorecard calibration: verdict-backed color hoist (#F4F7F9) counted as fail.
  • O5: fixture codebase is a source-only snapshot (no package.json) — B8 dead on arrival; needs explicit "not executable" verdict.
  • Full run notes in GOALS.md § Run notes; lessons appended to LESSONS.md.

Notes

  • Test emit was reverted in the fixture project; mapping artifacts (error-page spec, cache, drifts) remain there as permanent fixture improvement.
  • No SKILL.md changes in this PR (one change-type: goal/test infrastructure).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added an iteration goals scorecard with measurable quality objectives and deterministic validation checks.
    • Documented baseline and follow-up run results, including halt behavior, styling consistency, literal fidelity, and safe-scope editing checks.
    • Added lessons covering successful validation outcomes, calibration needs for color and geometry checks, and cases where verification could not run due to missing project tooling.

k-rutten and others added 2 commits July 27, 2026 10:13
Objectives-first iteration method (agreed 2026-07-27): O0-O4 gate,
O5 tracked as known-fail pending mapping fluidity-intent. Deterministic
checks per objective, grounded in the six failure modes from LESSONS
2026-05-08. Suppression objective dropped — no historical evidence.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
404-fixture emit-pass scored against the fixed scorecard. O1 fails on
illustration/absolute-geometry px literals (no rule home) plus a scorecard
calibration issue (verdict-backed color hoist counted as fail). B8 dead on
arrival on source-only fixture. Three LESSONS entries appended; run notes
in GOALS.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a measurable scorecard for the 404 Figma fixture and records v0.5 dogfood results, including objective outcomes, observed failure modes, fixture/schema drift, O1 calibration, and B8 tooling limitations.

Changes

Fixture improvement process

Layer / File(s) Summary
404 fixture scorecard
GOALS.md
Defines the iteration workflow, staged fixture protocol, O0–O5 deterministic checks, and baseline/run results.
Dogfood lessons
LESSONS.md
Adds v0.5 confirmation and correction entries covering styling, geometry, token-check calibration, and unavailable tooling for B8.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding the Goal 1 404-fixture scorecard and recording the v0.5 baseline run.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch goal-404-baseline

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@GOALS.md`:
- Around line 7-13: Clarify the Goal 1 “0/6” claim by adding an explicit mapping
from each of the six historical failure modes to the relevant objectives,
accounting for bundled failures in O1 and O4 and O5’s separate viewport-fill
behavior. Alternatively, rename the goal to state that it measures six scorecard
objectives rather than six historical failures.
- Around line 43-50: Update the O5 entry in the B8 run log and its scoring
guidance to use the explicit “not executable — <reason>” result, with a
deterministic policy stating whether that outcome is excluded, failed, or
passed. If O5 remains executable, define and apply a measurable fallback instead
of recording “not measurable.”
- Line 42: Update the O4 goal in GOALS.md to require HEAD-relative status and
diff checks that include both staged and unstaged changes, and validate the
repository’s actual canonical cache path rather than the stale
figma-mcp-context/ name. Align the path check with the cache path used by
SKILL.md, while preserving the existing safeguards against unintended deletions,
replacements, and changes outside intended targets.
- Around line 29-32: Update the fixture-preparation and scoring workflow in
GOALS.md so the prepared mapping and cache artifacts are pinned before Phase 1
scoring. Record a fixture commit, hash, or versioned snapshot after the unscored
preparation, and require later runs to use that exact snapshot so score changes
remain comparable.
- Line 39: Update the O1 “Zero raw style values” gate in GOALS.md to be
verdict-aware: permit color literals such as `#F4F7F9` only when backed by an
explicit tokens.md verdict and hoisted appropriately, while rejecting unapproved
colors and raw values outside the current `#hex/rgb/hsl` and px patterns. Define
the accepted verdict-backed forms and apply the same semantic validation
consistently across all raw-style categories.

In `@LESSONS.md`:
- Line 31: Update the B6-halts sentence in the documented “What worked” entry to
replace the Dutch wording “vuurden correct” with the English phrase “fired
correctly,” leaving the rest of the documentation unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5533561a-2db2-451f-b535-720b23b9434f

📥 Commits

Reviewing files that changed from the base of the PR and between 28bb7d6 and c0cf8e9.

📒 Files selected for processing (2)
  • GOALS.md
  • LESSONS.md

Comment thread GOALS.md
Comment on lines +7 to +13
## Goal 1 — 404 fixture: 0/6 historical failure modes

**Origin:** Orbit (Polar) article mining (2026-07) × LESSONS 2026-05-08 (six failure modes from pre-skill internal testing). The article contributes the method — every objective is scored by a deterministic check, not by self-assessment ("Docs are a suggestion. CI is a contract."). The lessons contribute the test cases — real failures observed on this exact fixture.

**Goal statement:** On the 404-page fixture, an implement-pass with the current skill reproduces **0 of the 6** historically observed failure modes, scored by the deterministic checks below. Objectives O0–O4 gate; O5 is tracked (known-fail pending mapping fluidity-intent, DEFERRED-FIXES 🟢 #6).

**Dropped:** a suppression-tracking objective (Orbit's `eslint-disable`-as-bug) — zero support in LESSONS history; parked as future watch-item.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

Make the “0/6” objective traceable to six distinct failure modes.

The inventory is not one-to-one: O1 bundles multiple failures, O4 bundles deletion and cache leakage, and O5 represents viewport-fill behavior separately from the six failures listed in the 2026-05-08 confirmation. Add an explicit failure-mode-to-objective mapping, or rename the goal to describe six scorecard objectives rather than six historical failures.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@GOALS.md` around lines 7 - 13, Clarify the Goal 1 “0/6” claim by adding an
explicit mapping from each of the six historical failure modes to the relevant
objectives, accounting for bundled failures in O1 and O4 and O5’s separate
viewport-fill behavior. Alternatively, rename the goal to state that it measures
six scorecard objectives rather than six historical failures.

Comment thread GOALS.md
Comment on lines +29 to +32
1. **Phase 0 — unmapped-node halt.** Request emit for `14961:2761` with no mapping present. Scores O0.
2. **Fixture prep (unscored).** Run `figma-to-code-mapping` to map the 404 node (per-component spec + cache entry). This is the pipeline as designed, not part of implement's score.
3. **Phase 1 — mapped emit.** Full implement-pass (B1–B8). Scores O1–O5.
4. **Teardown.** Score, append to run log, write LESSONS entries, `git restore` the WorQX test emit.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

Pin the fixture state after unscored preparation.

Fixture preparation is declared unscored, yet its mapping and cache artifacts remain permanently. Future runs may therefore use different fixture inputs than v0.5, making score changes indistinguishable from fixture drift. Record a fixture commit/hash or version the prepared snapshot before scoring.

Also applies to: 54-55

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@GOALS.md` around lines 29 - 32, Update the fixture-preparation and scoring
workflow in GOALS.md so the prepared mapping and cache artifacts are pinned
before Phase 1 scoring. Record a fixture commit, hash, or versioned snapshot
after the unscored preparation, and require later runs to use that exact
snapshot so score changes remain comparable.

Comment thread GOALS.md
| # | Objective | Gate? | Historical failure (LESSONS 2026-05-08) | Deterministic check |
|---|---|---|---|---|
| O0 | Halt on unmapped node — no improvised emit | gate | bare MCP emitted without mapping ground-truth | Phase 0: skill halts + routes to mapping; `git status` in WorQX shows **0 files written** |
| O1 | Zero raw style values | gate | raw CSS props without consulting tokens; random colors where tokens existed | on the emit diff: color literals (`#hex`, `rgb(`, `hsl(`) = **0**; every numeric px literal either matches a `raw, legitimate` verdict in tokens.md or is hoisted — unexplained px = fail |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

Make O1’s check semantic and verdict-aware.

The rule currently fails on every color literal, while the run notes say verdict-backed #F4F7F9 hoists should pass. Conversely, raw values outside the listed #hex/rgb/hsl and px patterns can evade the check. Define the accepted verdict-backed forms and cover all raw-style categories consistently.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@GOALS.md` at line 39, Update the O1 “Zero raw style values” gate in GOALS.md
to be verdict-aware: permit color literals such as `#F4F7F9` only when backed by
an explicit tokens.md verdict and hoisted appropriately, while rejecting
unapproved colors and raw values outside the current `#hex/rgb/hsl` and px
patterns. Define the accepted verdict-backed forms and apply the same semantic
validation consistently across all raw-style categories.

Comment thread GOALS.md
| O1 | Zero raw style values | gate | raw CSS props without consulting tokens; random colors where tokens existed | on the emit diff: color literals (`#hex`, `rgb(`, `hsl(`) = **0**; every numeric px literal either matches a `raw, legitimate` verdict in tokens.md or is hoisted — unexplained px = fail |
| O2 | Single styling surface | gate | `className` alongside Emotion | on the emit diff: `className=`, `style={{`, Tailwind-utility strings = **0** occurrences |
| O3 | Literal fidelity to mapping | gate | generic "probeer opnieuw" instead of documented copy | every user-facing string in the emit matches spec § Literal strings exactly; mismatches = **0** |
| O4 | Non-destructive, in-scope writes | gate | existing 404 page deleted + replaced; cache file committed to git | `git diff` in WorQX: no deleted exports/lines in pre-existing code beyond the intended edit-range; changed files = intended target(s) only; nothing staged from `figma-mcp-context/` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Check staged changes and the canonical cache path.

Plain git diff omits staged changes, so a staged cache file can escape O4. The check also names figma-mcp-context/, while SKILL.md uses figma-context/; the recorded path drift makes this historical failure mode unenforceable. Use a HEAD-relative status/diff check and verify the actual cache path(s).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@GOALS.md` at line 42, Update the O4 goal in GOALS.md to require HEAD-relative
status and diff checks that include both staged and unstaged changes, and
validate the repository’s actual canonical cache path rather than the stale
figma-mcp-context/ name. Align the path check with the cache path used by
SKILL.md, while preserving the existing safeguards against unintended deletions,
replacements, and changes outside intended targets.

Comment thread GOALS.md
Comment on lines +43 to +50
| O5 | Visual fidelity deltas | tracked | emit filled ~40% of viewport instead of 100vw | B8 7-point diff: count ✗/⚠ deltas. Viewport-fill ✗ is **expected** until mapping documents fluidity-intent — track, don't gate |

### Run log

| Date | Skill version | O0 | O1 | O2 | O3 | O4 | O5 (✗/⚠) | Notes |
|---|---|---|---|---|---|---|---|---|
| _pre-skill_ | none (bare MCP / mapping-only) | ✗ | ✗ | ✗ | ✗ | ✗ | n/a | the 2026-05-08 baseline: 6/6 failure modes observed |
| 2026-07-27 | 0.5 | ✓ | ✗ | ✓ | ✓ | ✓ | not measurable | Baseline run. See notes below. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Give non-runnable B8 a deterministic verdict.

O5 is recorded as “not measurable,” but the protocol requires deterministic scoring and does not define whether this status is excluded, failed, or passed. Adopt the lesson’s explicit not executable — <reason> result together with a fixed scoring policy or measurable fallback.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@GOALS.md` around lines 43 - 50, Update the O5 entry in the B8 run log and its
scoring guidance to use the explicit “not executable — <reason>” result, with a
deterministic policy stating whether that outcome is excluded, failed, or
passed. If O5 remains executable, define and apply a measurable fallback instead
of recording “not measurable.”

Comment thread LESSONS.md

[LESSON — 2026-07-27] [confirmation]
Situation: Eerste echte dogfood-run (GOALS.md Goal 1): volledige emit-pass op het WorQX 404-fixture met v0.5, gescoord op scorecard O0-O5.
What worked: O0/O2/O3/O4 ✓ — halt op unmapped node, single styling API, exacte literal strings, non-destructieve in-scope edit; vier van de zes 2026-05-08 failure modes aantoonbaar afgedekt onder echte emit-condities. B6-halts (verify-queue + Critical drift) vuurden correct.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use consistent English wording.

“B6-halts … vuurden correct” mixes Dutch into the surrounding English prose. Replace it with “fired correctly” for consistent documentation.

🧰 Tools
🪛 LanguageTool

[grammar] ~31-~31: Ensure spelling is correct
Context: ...6-halts (verify-queue + Critical drift) vuurden correct. Proposal: Rule-set houden; sco...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@LESSONS.md` at line 31, Update the B6-halts sentence in the documented “What
worked” entry to replace the Dutch wording “vuurden correct” with the English
phrase “fired correctly,” leaving the rest of the documentation unchanged.

Source: Linters/SAST tools

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