Extraction & Curation
Multi-Pass Extraction
Section titled “Multi-Pass Extraction”Taste Engine doesn’t analyze your documents in a single pass. Instead, it runs 8 specialized passes, each tuned to extract a different type of canon truth:
| Pass | Extracts |
|---|---|
| Core thesis | Product identity, purpose, what makes it unique |
| Design rules | Structural patterns, constraints, invariants |
| Anti-patterns | What to avoid, past mistakes, known traps |
| Voice & naming | Tone, terminology, naming conventions |
| Scope boundaries | What’s in scope, what’s explicitly out |
| Quality bars | Standards, acceptance criteria, definition of done |
| Process rules | How work flows, review requirements, release gates |
| Integration contracts | How components connect, API boundaries |
Each pass uses a specialized prompt that focuses the LLM on one dimension of truth.
Consolidation
Section titled “Consolidation”After all passes complete, the engine runs Jaccard token similarity across all extracted candidates to detect duplicates and near-duplicates. Candidates above the similarity threshold are flagged for merge during curation.
taste extract run # Run all 8 passestaste extract run --passes core_thesis,design_rules # Run specific passestaste extract status # Summary of latest runtaste extract candidates # List all candidatestaste extract exemplars # High-quality examples from source docsStatement Properties
Section titled “Statement Properties”Every extracted candidate has:
- type — thesis, design_rule, anti_pattern, voice_convention, scope_boundary, quality_bar, process_rule, integration_contract
- hardness — hard (non-negotiable), strong (high priority), soft (guidance), experimental (try it)
- text — The canonical statement
- evidence — Quotes from source documents that support it
- scope — What artifact types or areas it applies to
Curation Workflow
Section titled “Curation Workflow”Extracted candidates are proposed — they need human review before entering canon.
Queue Management
Section titled “Queue Management”taste curate queue # Show all pending candidatestaste curate inspect <id> # View full detailsDecisions
Section titled “Decisions”taste curate accept <id> # Accept as-istaste curate edit <id> # Accept with modificationstaste curate reject <id> # Reject with reasontaste curate defer <id> # Defer for later reviewtaste curate merge <id1> <id2> # Merge two candidatestaste curate accept-all # Accept all remaining (use carefully)Contradiction Resolution
Section titled “Contradiction Resolution”When two statements conflict, they’re flagged as contradictions:
taste curate contradictions # List detected contradictionstaste curate resolve-contradiction <id> --keep <winner-id>Freezing
Section titled “Freezing”Once curation is complete, freeze the canon:
taste curate freeze --tag v1A frozen version is immutable. Reviews and gates always run against frozen canon. You can continue curating and freeze new versions without affecting existing reviews.
Statement Lifecycle
Section titled “Statement Lifecycle”proposed → accepted → (superseded | retired | disputed)- proposed — Extracted, awaiting human review
- accepted — In active canon, used for reviews
- superseded — Replaced by a newer statement
- retired — No longer applicable
- disputed — Under review after feedback