[object Object]

← back to Cli Printing Press

feat(skills): auto-suggest novel CLI features before absorb gate (#50)

a350f4190a8f38c248e384b7bd000cac7cdf58d3 · 2026-03-29 12:00:29 -0700 · Matt Van Horn

* fix(skills): strengthen sniff gate and add absorb gate options

Two UX fixes from ESPN test run:

1. Sniff Gate: removed "(Optional)" from heading, added MUST-ask
   enforcement. Added decision matrix row for "no spec but community
   docs exist" (the ESPN case). Agent was silently skipping sniff
   when it should have asked.

2. Absorb Gate: added "Add features first" and "Review the research"
   options alongside Approve and Trim. Users want to add their own
   ideas and review before committing to generation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(skills): auto-suggest novel CLI features before absorb gate

Adds Step 1.5c.5 that automatically generates 3-5 evidence-backed
feature recommendations using structured gap analysis:
- Domain-specific opportunities (sports=trends, PM=velocity, etc)
- User pain points from research (npm READMEs, GitHub issues)
- Competitor edges from absorb manifest
- Cross-entity SQLite queries
- Agent workflow gaps

Each suggestion scored on 4 dimensions (Domain Fit, User Pain,
Build Feasibility, Research Backing) — /10 scale. Features scoring
≥5/10 auto-added to transcendence table with evidence citations.

Also adds brainstorm dialogue when user picks "Brainstorm more
features" at the gate — 3 questions adapted from ce:brainstorm.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Matt Van Horn <mvanhorn@MacBook-Pro.local>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit a350f4190a8f38c248e384b7bd000cac7cdf58d3
Author: Matt Van Horn <mvanhorn@users.noreply.github.com>
Date:   Sun Mar 29 12:00:29 2026 -0700

    feat(skills): auto-suggest novel CLI features before absorb gate (#50)
    
    * fix(skills): strengthen sniff gate and add absorb gate options
    
    Two UX fixes from ESPN test run:
    
    1. Sniff Gate: removed "(Optional)" from heading, added MUST-ask
       enforcement. Added decision matrix row for "no spec but community
       docs exist" (the ESPN case). Agent was silently skipping sniff
       when it should have asked.
    
    2. Absorb Gate: added "Add features first" and "Review the research"
       options alongside Approve and Trim. Users want to add their own
       ideas and review before committing to generation.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    
    * feat(skills): auto-suggest novel CLI features before absorb gate
    
    Adds Step 1.5c.5 that automatically generates 3-5 evidence-backed
    feature recommendations using structured gap analysis:
    - Domain-specific opportunities (sports=trends, PM=velocity, etc)
    - User pain points from research (npm READMEs, GitHub issues)
    - Competitor edges from absorb manifest
    - Cross-entity SQLite queries
    - Agent workflow gaps
    
    Each suggestion scored on 4 dimensions (Domain Fit, User Pain,
    Build Feasibility, Research Backing) — /10 scale. Features scoring
    ≥5/10 auto-added to transcendence table with evidence citations.
    
    Also adds brainstorm dialogue when user picks "Brainstorm more
    features" at the gate — 3 questions adapted from ce:brainstorm.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    
    ---------
    
    Co-authored-by: Matt Van Horn <mvanhorn@MacBook-Pro.local>
    Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---
 skills/printing-press/SKILL.md | 65 +++++++++++++++++++++++++++++++++++++++---
 1 file changed, 61 insertions(+), 4 deletions(-)

diff --git a/skills/printing-press/SKILL.md b/skills/printing-press/SKILL.md
index 73b1f7a4..63f61280 100644
--- a/skills/printing-press/SKILL.md
+++ b/skills/printing-press/SKILL.md
@@ -558,7 +558,7 @@ Every row = a feature we MUST build. No exceptions. If someone else has it, we h
 
 SDK wrapper methods should be treated as features to absorb — each public method/function is a feature the CLI should match.
 
-### Step 1.5c: Identify transcendence features
+### Step 1.5c: Identify compound use cases
 
 What compound use cases become possible ONLY when ALL absorbed features live in SQLite together?
 
@@ -571,24 +571,81 @@ What compound use cases become possible ONLY when ALL absorbed features live in
 | 3 | Duplicate detection | similar "login bug" | Requires FTS5 across ALL issue text + comments |
 ```
 
-Minimum 5 transcendence features. These are the NOI commands.
+Minimum 5 compound use case features. These are the NOI commands.
+
+### Step 1.5c.5: Auto-Suggest Novel Features
+
+**This step runs automatically.** No user interaction. Synthesize ALL research gathered so far (Phase 1 brief + Phase 1.5a ecosystem search + Phase 1.5b absorb manifest) into evidence-backed feature recommendations.
+
+#### Gap Analysis
+
+Analyze these 5 categories using data already gathered — do NOT run new searches:
+
+1. **Domain-specific opportunities** — Based on the API Identity from Phase 1 brief. What intelligence does this domain uniquely enable?
+   - Sports APIs → trend analysis, player comparison, game alerts, fantasy projections
+   - Project management APIs → bottleneck detection, velocity trends, workload balance, stale issue radar
+   - Payments APIs → reconciliation, revenue trends, dispute tracking, churn prediction
+   - Communication APIs → response time analytics, channel health, thread summarization
+   - CRM APIs → pipeline velocity, deal scoring, contact engagement trends
+
+2. **User pain points** — From Phase 1 research: npm README "limitations" sections, GitHub issues on competitor repos, community docs mentioning workarounds, PyPI package descriptions mentioning what's missing
+
+3. **Competitor edges** — From the absorb manifest: what does the BEST competitor tool uniquely offer that nobody else has? Can we beat it with the SQLite layer?
+
+4. **Cross-entity queries** — What joins across synced tables produce insights no single API call can? (This overlaps with Step 1.5c but approaches it from the data model, not the use case)
+
+5. **Agent workflow gaps** — What would an AI agent using this CLI wish it could do in one command instead of multiple? (e.g., "show me everything about X" commands, bulk operations, pre-flight checks)
+
+#### Generate and Score Candidates
+
+Generate 3-5 novel feature ideas. For each, score on 4 dimensions:
+
+| Dimension | Points | Scoring |
+|-----------|--------|---------|
+| **Domain Fit** | 0-3 | 3=core to this API's power users, 2=useful but niche, 1=tangential, 0=wrong domain |
+| **User Pain** | 0-3 | 3=research surfaced explicit demand (community complaints, competitor gap), 2=implied need, 1=speculative, 0=no evidence |
+| **Build Feasibility** | 0-2 | 2=SQLite store + existing sync covers it, 1=needs minor data model additions, 0=requires new infrastructure |
+| **Research Backing** | 0-2 | 2=evidence from 2+ sources in Phase 1/1.5 research, 1=evidence from 1 source, 0=invented |
+
+**Normalize:** `score_10 = round(raw / 10 * 10)`. Include features scoring ≥ 5/10.
+
+#### Add to Transcendence Table
+
+Add each qualifying feature as a new row in the transcendence table:
+
+```markdown
+| # | Feature | Command | Why Only We Can Do This | Score | Evidence |
+|---|---------|---------|------------------------|-------|----------|
+| N | Player comparison | compare "LeBron" "Curry" | Requires local join across player stats + team + season data | 8/10 | ESPN community requests, espn_scraper lacks cross-player queries |
+```
+
+The "Evidence" column MUST cite specific findings from Phase 1 or Phase 1.5 research. No unsupported assertions.
 
 ### Step 1.5d: Write the manifest artifact
 
 Write to `$RESEARCH_DIR/<stamp>-feat-<api>-pp-cli-absorb-manifest.md`
 
+The manifest now includes both compound use cases (Step 1.5c) and auto-suggested features (Step 1.5c.5) in the transcendence table.
+
 ### Phase Gate 1.5
 
 **STOP.** Present the absorb manifest to the user via `AskUserQuestion`:
 
-"Found [N] features across [X] tools (MCPs, skills, CLIs, scripts). Our CLI will absorb all [N] and add [M] transcendence features. Total: [N+M] features. This is [Z]% more than the best existing tool."
+"Found [N] features across [X] tools (MCPs, skills, CLIs, scripts). Our CLI will absorb all [N] and add [M] transcendence features ([K] auto-suggested with scores). Total: [N+M] features. This is [Z]% more than the best existing tool."
 
 Options:
 1. **Approve — generate now** — Start CLI generation with the full manifest
-2. **Add features first** — You have specific features or ideas you want added to the manifest before building
+2. **Brainstorm more features** — Interactive dialogue to explore your own feature ideas before building
 3. **Review the research** — Show me the full brief and manifest before deciding
 4. **Trim scope** — The feature count is too ambitious, let's focus on a subset
 
+If user selects **"Brainstorm more features"**, run a lightweight feature brainstorm:
+
+1. "What workflows do you personally use `<API>` for that aren't covered in the manifest?"
+2. "What's annoying about existing tools for `<API>` that you wish someone would fix?"
+3. "If this CLI could do one magical thing, what would make you say 'I need this'?"
+
+Each answer that produces a concrete feature → add to the transcendence table. After the brainstorm, return to this gate with the updated manifest.
 WAIT for approval. Do NOT generate until approved.
 
 ---

← 66cbbc98 fix(skills): strengthen sniff gate and add absorb gate optio  ·  back to Cli Printing Press  ·  fix(skills): don't call unauthenticated endpoints a "public 0f765d10 →