Zum Inhalt springen

The `selection-aggregate` Area

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

selection-aggregate is the eleventh grading area, and the one that grades a selection as a whole rather than any single primitive within it. It carries the selection-wide dimensions — thresholds, topic coherence, member-against-About conformance, persona fit, and the group-bound tier — that have no per-skill or per-About home. Without it there is no gate for Grade A, which is why this area, its output schema, template, and skill triad MUST exist alongside the ten areas already in place.


Grading is organised into areas — one rubric per primitive type. Ten areas already exist with output schemas under prompts/output-schemas/: single-test, tools-aggregate-schema, tools-aggregate-namespace, namespace-description, namespace-skills, about-namespace, about-selection, selection-skills-L1, selection-skills-L2, selection-skills-L3. The eleventh area, selection-aggregate, is the one missing piece: it grades the selection as a whole.

The selection-wide dimensions — thresholds, topic coherence, member-against-about conformance, persona use-case fit, the group-bound tier path — have no per-skill or per-about home. Without selection-aggregate there is no gate for Grade A. This area MUST exist; its output schema, template, and skill triad MUST be built (the other ten already exist).

The area’s gradings are stored at selections/<selection>/_gradings/ (the selection-level _gradings/ folder).

selection-aggregate carries the selection-wide dimensions:

DimensionMeaning
Thresholdssoft >= 5 member namespaces (a group; Grade A not regular), hard >= 7 (Grade A regularly attainable). Fewer than 5 → no selection phases (n/a); 5–6 → no Grade A.
Topic coherenceThe members form a coherent topic, not an arbitrary bag.
domainConformanceThe members are checked against the About / Domain-Knowledge. This is distinct from about-selection, which checks the document’s own quality. Document quality is not the same as member conformance — two checks, no circularity.
personaUseCaseFitThe selection fits the declared personas’ use cases.
Group-bound tierThis is the area that opens the path to Grade A (gradingTier = group-bound). Provider-level grading alone caps at Grade B.
Cascade-stopThe aggregate stops the cascade when a hard precondition fails (e.g. members below threshold), rather than producing a misleading partial grade.

The output of every area shares a common envelope (from _master.schema.json plus the area-specific part) and a list of answers[]. The selection-aggregate output conforms to that envelope.

FieldValue
gradingIdunique grading identifier
schemaHashhash binding of the graded artifact
areaconst "selection-aggregate"
iteration1–5
timestampisland timestamp grammar
persona{ basePersonaId ∈ [ai-engineer, decision-maker, hackathon-builder, schema-maintainer], lensId }
answers[]the area answers (see below)
improvementHints[]actionable hints for the improve loop
harnessenum ["claude-code"]

Each answer has: questionId (^Q-…), score (1–5 or pass/fail/stale/n/a), reasoning, optional evidence, and naReason (required when score is n/a).

selection-aggregate carries one answer per carried dimension above (deterministic where decidable — e.g. the threshold count — non-deterministic where it requires judgment — e.g. topic coherence, persona fit). The deterministic threshold answer and the non-deterministic judgment answers are merged into the single area output; a deterministic-only result is not a valid area grading.

Validation uses draft 2020-12 (Ajv2020 + ajv-formats); _master is added once via addSchema.

The prompt template for selection-aggregate follows the same contract as the other ten areas’ templates: it states the area, injects the resolved member-resolution manifest (from index.json), the About / Domain-Knowledge, the declared personas, and the threshold counts, then asks one question per carried dimension. The template MUST include the Goal-Block and the surfacing convention (see 25-harness-and-goal.md).

Like every area, selection-aggregate is backed by a skill triad — the three-skill contract (start-gradeevaluateapply-improvement) that the harness runs as the inner micro-loop. The triad reads the frozen lockSnapshot and the member-resolution manifest, evaluates the carried dimensions, and emits improvementHints[] when the selection falls short. The triad MUST be built for this area (the other ten already have theirs).

selection-aggregate is the node selectionAggregate in the selection’s index.json. Its status follows the 5-status node enum; reaching stable here (with the hard threshold met and a group-bound evaluation present) is what allows the selection rollup to reach Grade A.