HIGR Prompt Testing
Test prompt and skill changes systematically with Hypothesis-Implement-Grade-Rework cycles. Every modification requires testable predictions and evidence-based grading against benchmark data.
Quick Start
- Write testable hypotheses before editing any prompt or skill
- Implement the change (delete superseded content)
- Run against benchmark inputs, compare to known-good output
- Grade each hypothesis: Good / Bad / Ugly
- Rework if needed; record results in
workspace/higr_log.md
When to Use
- Modifying phase prompts (
.github/prompts/phase_*.prompt.md)
- Updating skill SKILL.md or references/
- Changing agent definition (
.github/agents/customer_newsletter.agent.md)
- Changing copilot-instructions.md
- Any change that affects newsletter output quality
HIGR Cycle
flowchart LR
H[Hypothesis] --> I[Implement]
I --> G[Grade]
G --> R{Rework?}
R -->|Bad/Ugly| H
R -->|Good| D[Done]
Step 1: Hypothesis (Pre-Implementation)
Before editing any prompt or skill, write testable predictions:
| Hypothesis ID |
Change |
Expected Effect |
Testable Criteria |
| H1 |
[specific change] |
[expected output difference] |
[how to verify] |
Hypothesis Requirements:
- Specific — Not "newsletter will be better"
- Observable — Can see the difference in output
- Falsifiable — Possible to determine if wrong
Example Good Hypotheses:
| ID |
Change |
Expected Effect |
Criteria |
| H1 |
Add SOURCES.yaml reading to url-manifest |
URL count increases, covers all kb/ sources |
URL count within 20% of benchmark, 0 false URLs |
| H2 |
Extract selection criteria to skill reference |
Curation quality matches Dec 2025 benchmark |
≥70% item overlap with benchmark curated sections |
| H3 |
Add IDE parity grouping to content-format-spec |
IDE updates grouped correctly |
VS Code/Visual Studio/JetBrains in single section |
Step 2: Implement
Make the change. Delete superseded content immediately — no parallel implementations.
Rules:
- No
_v2, _new, _enhanced variants
- No backward compatibility code
- Replace existing instructions directly
Step 3: Grade (Post-Implementation)
Run against benchmark data and grade each hypothesis:
| Hypothesis ID |
Outcome |
Grade |
Evidence |
| H1 |
Met |
Good |
"URL count: 72 (benchmark: 68)" |
| H2 |
Partially Met |
Bad |
"Only 50% overlap vs target 70%" |
| H3 |
Unexpected |
Ugly |
"Grouping present but wrong order" |
Grade Definitions:
| Grade |
Meaning |
Action |
| Good |
Hypothesis confirmed, output matches benchmark |
Accept change, proceed to next skill |
| Bad |
Hypothesis not met, output doesn't match |
Rework: adjust skill/prompt, re-test |
| Ugly |
Major unexpected deviation |
Evaluate: may need skill redesign |
Step 4: Rework (If Needed)
For each Bad or Ugly outcome:
| Outcome |
Action |
| Bad — output degraded |
Fix and re-test |
| Ugly — harmful surprise |
Revert or fix |
| Ugly — beneficial surprise |
Document and accept |
| Ugly — ambiguous |
Halt and reassess |
Benchmark Testing
Primary Benchmark: December 2025 Cycle
Known-good intermediates for each pipeline phase:
| Phase |
Skill |
Known-Good Benchmark File |
| 1A |
url-manifest |
workspace/archived/newsletter_phase1a_url_manifest_2025-10-06_to_2025-12-02.md |
| 1B |
content-retrieval |
workspace/archived/newsletter_phase1b_interim_*_2025-10-06_to_2025-12-02.md (5 files) |
| 1C |
content-consolidation |
workspace/archived/newsletter_phase1a_discoveries_2025-10-06_to_2025-12-02.md |
| 2 |
events-extraction |
workspace/archived/newsletter_phase2_events_2025-12-02.md |
| 3 |
content-curation |
workspace/archived/newsletter_phase3_curated_sections_2025-12-02.md |
| 4 |
newsletter-assembly |
archive/2025/December.md (gold standard) |
Testing Procedure
- Invoke the skill with its benchmark input (DATE_RANGE or known-good upstream output)
- Save output to
workspace/
- Compare against the known-good benchmark file listed above
- Grade using the comparison dimensions for that skill (see TRAINING_RUNBOOK.md)
Comparison Dimensions by Phase
| Phase |
Key Dimensions |
| 1A |
URL count (within 20%), source coverage (all 5), false URLs (0) |
| 1B |
File count (5), extraction format, item counts |
| 1C |
Item count (30-50), dedup (0 duplicates), enterprise filter |
| 2 |
Table format, canonical categories, date-only for virtual |
| 3 |
Item count (15-20), GA/PREVIEW labels, section structure |
| 4 |
Mandatory sections present, section order, tone, link format |
Secondary Benchmarks (Regression Testing)
After changes stabilize, test against additional cycles:
| Cycle |
Gold Standard |
Best For |
| 2025-08 August |
archive/2025/August.md |
Moderate complexity |
| 2025-06 June |
archive/2025/June.md |
Different content period |
HIGR Log
Record all HIGR cycles in workspace/higr_log.md:
### HIGR: [Skill] — [Issue] — [Date]
**Hypothesis:** [What should change and why]
**Implement:** [What was changed, file + section]
**Grade:** [Good/Bad/Ugly] — [Evidence]
**Rework:** [If Bad: what was tried next]
Anti-Patterns
| Anti-Pattern |
Problem |
Fix |
| Skipping hypotheses |
Can't verify improvement |
Always write H1+ before editing |
| Testing without benchmark |
No quality baseline |
Always compare to known-good |
| "Looks better" grading |
Not evidence-based |
Cite specific dimension + metric |
| Keeping old code |
Parallel implementations |
Delete superseded content |
| Batch-testing all skills |
Can't isolate failures |
Test one skill at a time |
Done When
- Hypotheses written (testable, specific, observable)
- Change implemented (old content deleted)
- Benchmark test executed against known-good intermediate
- Each hypothesis graded: Good / Bad / Ugly
- HIGR log updated in
workspace/higr_log.md
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: testing-prompt-changes3description: Tests prompt and skill changes using Hypothesis-Implement-Grade-Rework cycles. Use when modifying newsletter prompts, skills, or agent instructions. Compares output against benchmark known-good intermediates. Keywords: test prompt, HIGR testing, prompt validation, benchmark testing.4license: MIT5---67# HIGR Prompt Testing89Test prompt and skill changes systematically with Hypothesis-Implement-Grade-Rework cycles. Every modification requires testable predictions and evidence-based grading against benchmark data.1011## Quick Start12131. Write testable hypotheses before editing any prompt or skill142. Implement the change (delete superseded content)153. Run against benchmark inputs, compare to known-good output164. Grade each hypothesis: Good / Bad / Ugly175. Rework if needed; record results in `workspace/higr_log.md`1819## When to Use2021- Modifying phase prompts (`.github/prompts/phase_*.prompt.md`)22- Updating skill SKILL.md or references/23- Changing agent definition (`.github/agents/customer_newsletter.agent.md`)24- Changing copilot-instructions.md25- Any change that affects newsletter output quality2627## HIGR Cycle2829```mermaid30flowchart LR31 H[Hypothesis] --> I[Implement]32 I --> G[Grade]33 G --> R{Rework?}34 R -->|Bad/Ugly| H35 R -->|Good| D[Done]36```3738### Step 1: Hypothesis (Pre-Implementation)3940Before editing any prompt or skill, write testable predictions:4142| Hypothesis ID | Change | Expected Effect | Testable Criteria |43|---------------|--------|-----------------|-------------------|44| H1 | [specific change] | [expected output difference] | [how to verify] |4546**Hypothesis Requirements:**47- **Specific** — Not "newsletter will be better"48- **Observable** — Can see the difference in output49- **Falsifiable** — Possible to determine if wrong5051**Example Good Hypotheses:**5253| ID | Change | Expected Effect | Criteria |54|----|--------|-----------------|----------|55| H1 | Add SOURCES.yaml reading to url-manifest | URL count increases, covers all kb/ sources | URL count within 20% of benchmark, 0 false URLs |56| H2 | Extract selection criteria to skill reference | Curation quality matches Dec 2025 benchmark | ≥70% item overlap with benchmark curated sections |57| H3 | Add IDE parity grouping to content-format-spec | IDE updates grouped correctly | VS Code/Visual Studio/JetBrains in single section |5859### Step 2: Implement6061Make the change. Delete superseded content immediately — no parallel implementations.6263**Rules:**64- No `_v2`, `_new`, `_enhanced` variants65- No backward compatibility code66- Replace existing instructions directly6768### Step 3: Grade (Post-Implementation)6970Run against benchmark data and grade each hypothesis:7172| Hypothesis ID | Outcome | Grade | Evidence |73|---------------|---------|-------|----------|74| H1 | Met | Good | "URL count: 72 (benchmark: 68)" |75| H2 | Partially Met | Bad | "Only 50% overlap vs target 70%" |76| H3 | Unexpected | Ugly | "Grouping present but wrong order" |7778**Grade Definitions:**7980| Grade | Meaning | Action |81|-------|---------|--------|82| **Good** | Hypothesis confirmed, output matches benchmark | Accept change, proceed to next skill |83| **Bad** | Hypothesis not met, output doesn't match | Rework: adjust skill/prompt, re-test |84| **Ugly** | Major unexpected deviation | Evaluate: may need skill redesign |8586### Step 4: Rework (If Needed)8788For each Bad or Ugly outcome:8990| Outcome | Action |91|---------|--------|92| Bad — output degraded | Fix and re-test |93| Ugly — harmful surprise | Revert or fix |94| Ugly — beneficial surprise | Document and accept |95| Ugly — ambiguous | Halt and reassess |9697## Benchmark Testing9899### Primary Benchmark: December 2025 Cycle100101Known-good intermediates for each pipeline phase:102103| Phase | Skill | Known-Good Benchmark File |104|-------|-------|--------------------------|105| 1A | url-manifest | `workspace/archived/newsletter_phase1a_url_manifest_2025-10-06_to_2025-12-02.md` |106| 1B | content-retrieval | `workspace/archived/newsletter_phase1b_interim_*_2025-10-06_to_2025-12-02.md` (5 files) |107| 1C | content-consolidation | `workspace/archived/newsletter_phase1a_discoveries_2025-10-06_to_2025-12-02.md` |108| 2 | events-extraction | `workspace/archived/newsletter_phase2_events_2025-12-02.md` |109| 3 | content-curation | `workspace/archived/newsletter_phase3_curated_sections_2025-12-02.md` |110| 4 | newsletter-assembly | `archive/2025/December.md` (gold standard) |111112### Testing Procedure1131141. Invoke the skill with its benchmark input (DATE_RANGE or known-good upstream output)1152. Save output to `workspace/`1163. Compare against the known-good benchmark file listed above1174. Grade using the comparison dimensions for that skill (see TRAINING_RUNBOOK.md)118119### Comparison Dimensions by Phase120121| Phase | Key Dimensions |122|-------|----------------|123| 1A | URL count (within 20%), source coverage (all 5), false URLs (0) |124| 1B | File count (5), extraction format, item counts |125| 1C | Item count (30-50), dedup (0 duplicates), enterprise filter |126| 2 | Table format, canonical categories, date-only for virtual |127| 3 | Item count (15-20), GA/PREVIEW labels, section structure |128| 4 | Mandatory sections present, section order, tone, link format |129130### Secondary Benchmarks (Regression Testing)131132After changes stabilize, test against additional cycles:133134| Cycle | Gold Standard | Best For |135|-------|---------------|----------|136| 2025-08 August | `archive/2025/August.md` | Moderate complexity |137| 2025-06 June | `archive/2025/June.md` | Different content period |138139## HIGR Log140141Record all HIGR cycles in `workspace/higr_log.md`:142143```markdown144### HIGR: [Skill] — [Issue] — [Date]145146**Hypothesis:** [What should change and why]147**Implement:** [What was changed, file + section]148**Grade:** [Good/Bad/Ugly] — [Evidence]149**Rework:** [If Bad: what was tried next]150```151152## Anti-Patterns153154| Anti-Pattern | Problem | Fix |155|--------------|---------|-----|156| Skipping hypotheses | Can't verify improvement | Always write H1+ before editing |157| Testing without benchmark | No quality baseline | Always compare to known-good |158| "Looks better" grading | Not evidence-based | Cite specific dimension + metric |159| Keeping old code | Parallel implementations | Delete superseded content |160| Batch-testing all skills | Can't isolate failures | Test one skill at a time |161162## Done When163164- Hypotheses written (testable, specific, observable)165- Change implemented (old content deleted)166- Benchmark test executed against known-good intermediate167- Each hypothesis graded: Good / Bad / Ugly168- HIGR log updated in `workspace/higr_log.md`169170---171> Converted and distributed by [TomeVault](https://tomevault.io/claim/briancl2) — claim your Tome and manage your conversions.172<!-- tomevault:4.0:skill_md:2026-04-12 -->