Skip to content

Grading observability, caching & emit-skill (Memo 110) - #60

Merged
a6b8 merged 5 commits into
mainfrom
memo-110-grading-observability
Jun 5, 2026
Merged

Grading observability, caching & emit-skill (Memo 110)#60
a6b8 merged 5 commits into
mainfrom
memo-110-grading-observability

Conversation

@a6b8

@a6b8 a6b8 commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Closes #59.

Phases (grading side)

  • P1 Versionssrc/data/specVersion.mjs single canonical GRADING_SPEC_VERSION; ModuleApi.getSpecVersion() reads it; 20 src comments + package description + 11 template frontmatters fixed; repo-hygiene lint now flags drifted gradingSpec/<x.y.z>.
  • P2 CachingDataPretest.run() read-cache (default-on, only the live fetch skipped, gate always recomputed) + force bypass + optional throttleMs; classifier extracted to #classifyResults (shared live/cache).
  • P3 Emit-Skill — templates: dead {{OUTPUT_SCHEMA_REF}} → inline {{OUTPUT_SCHEMA_BLOCK}}, duplicate Files block + empty neutral Persona removed; AreaPromptLoader substitutions (real file paths + NAME tokens, APL-010 no-torso guard; back-compat without context).
  • P5 Befund-I — about-namespace gate → stable (graph 1.2.0); both classification for single-test/tools-aggregate-*; VALID_BLOCKED_REASONS raised to the canonical 7-value set (ProviderProof imports it — single source).

Bump to 2.4.0 for the coordinated release (flowmcp-cli pin follows).

Tests: 801/801 pass, lint:hygiene PASS.

🤖 Generated with Claude Code

a6b8 and others added 5 commits June 5, 2026 17:38
Phase 1 (Memo 110): kill grading-spec version drift (Befund E).
- new src/data/specVersion.mjs as the single canonical GRADING_SPEC_VERSION
- ModuleApi.getSpecVersion() reads the one source
- fix 20 src comments + package description + 11 template frontmatters
- repo-hygiene lint now flags any drifted gradingSpec/<x.y.z> literal
- SpecVersion.test.mjs guards the single source

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Phase 2 (Memo 110): test data is no longer re-fetched every run (Befund A).
- DataPretest.run() reads persisted test-N.json (read-cache, default-on);
  only the live FETCH is skipped, the gate is always recomputed
- force:true bypasses the cache; fromCache + dataAt (data stamp) surfaced
- classifier extracted to #classifyResults (shared live/cache path)
- optional inter-fetch throttle (throttleMs, opt-in, default 0)
- DataPretest tests isolate islands per test; +cache/force/throttle tests

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Phase 3 (Memo 110): close the emitted-prompt torso (Befund C/D/G).
- templates: dead {{OUTPUT_SCHEMA_REF}} -> inline {{OUTPUT_SCHEMA_BLOCK}};
  drop the duplicate Files-to-Read block + empty neutral Persona render
- AreaPromptLoader.loadArea/loadAllAreas take a substitution context:
  #deriveFiles emits REAL file paths; a NAME-token pass fills
  {{NAMESPACE}}/{{TOOL_NAME}}/{{SCHEMA_NAME}}; a surviving token is a hard
  APL-010 error (no torso reaches a subagent)
- back-compat: without a context the legacy placeholders are kept
- tests for substitution fill + APL-010 + back-compat

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Phase 5 (Memo 110): code-side Befund-I alignment.
- I-2: about-namespace gate structural-valid -> stable (strict Spec-21
  pre-condition; the code pulls up). Graph version 1.2.0.
- I-4: single-test/tools-aggregate-schema/tools-aggregate-namespace/
  about-namespace classified `both` (deterministic gate + non-det LLM
  round) per spec 04/08; new `both` classification value
- I-5: VALID_BLOCKED_REASONS raised to the canonical 7-value set
  (grading-spec 08); ProviderProof imports it — one source, no divergence
- tests updated for the corrected gate + classification

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@a6b8
a6b8 merged commit f8beded into main Jun 5, 2026
1 check passed
@a6b8
a6b8 deleted the memo-110-grading-observability branch June 5, 2026 16:35
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.

Grading observability, caching & emit-skill (Memo 110)

1 participant