ワンクリックで
batch-filing-gaps
Batch scan canvases for GAP sections, deduplicate, route to correct repos, draft issue bodies, and file confirmed issues.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Batch scan canvases for GAP sections, deduplicate, route to correct repos, draft issue bodies, and file confirmed issues.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Capture point-in-time MER (MiDi Experience Record) for a wallet — data state, visual screenshot, perception context, and decision metadata.
Compare user expectations (UTCs) with code reality to identify gaps. Use when you need to understand discrepancies between what users expect and what code actually does.
Parallel multi-user processing using Claude Code native teams. Leader spawns workers per user, each runs /ingest-dm, leader aggregates for cross-canvas patterns.
Validate gap hypotheses by manually simulating features for individual users and measuring commitment, not satisfaction.
Automated end-to-end feedback pipeline that pulls new Supabase entries, enriches, classifies, routes to canvases, and generates a synthesis report.
Show what changed since last validation for a specific artifact. Computes confidence without writing to frontmatter.
| name | batch-filing-gaps |
| description | Batch scan canvases for GAP sections, deduplicate, route to correct repos, draft issue bodies, and file confirmed issues. |
| user-invocable | true |
| allowed-tools | Read, Write, Glob, Grep, Edit, Bash |
Scan all observer canvases for ### GAP-* sections, deduplicate similar gaps across users, route to the correct repo (score-api or midi-interface), draft issue bodies with user quotes as evidence, present for operator confirmation, and file approved issues via gh issue create.
Gaps are user-grounded. Every issue filed must trace back to at least one direct user quote or feedback entry. No speculative issues.
/gap-to-issues # Scan all canvases
/gap-to-issues --canvas <username> # Single canvas only
/gap-to-issues --repo score-api # Filter to score-api issues only
/gap-to-issues --repo midi-interface # Filter to midi-interface issues only
/gap-to-issues --dry-run # Preview without filing
/daily-synthesis run that detected new gapsGlob grimoires/keeper/canvas/*.md and grep for ### GAP- sections.
For each GAP found, extract:
GAP-DATA-001)Skip gaps with status FILED or RESOLVED.
Group similar gaps across canvases:
Example: "Data staleness" appearing in 3 canvases → single issue with 3 user citations.
Before routing or filing any gap, classify its evidence to prevent filing inferred features as concrete requests.
4-Category Evidence Taxonomy:
| Category | Criteria | Filing Action |
|---|---|---|
| (a) User-reported bug | Direct quote describes broken behavior | File as issue |
| (b) User-expressed need | Quote contains explicit request ("I wish...", "Would like to see...") | File as issue |
| (c) Observed behavioral gap | User behavior implies X but no explicit quote requesting it | File with observed-pattern label |
| (d) Inferred feature | Extrapolated from user vision/sentiment — no direct quote supports it | BLOCK — do not file |
Gate Logic:
observed-pattern to labelsApply this gate per-gap before proceeding to Step 3.
| GAP Type | Target Repo |
|---|---|
| ACCURACY | 0xHoneyJar/score-api |
| WEIGHTINGS | 0xHoneyJar/score-api |
| UX | 0xHoneyJar/midi-interface |
| FEATURE | 0xHoneyJar/midi-interface |
For each deduplicated gap, draft a GitHub issue:
## User Feedback Gap
**Gap Type**: {ACCURACY|WEIGHTINGS|UX|FEATURE}
**Severity**: {HIGH|MEDIUM|LOW}
**Users Affected**: {N} ({usernames})
### Evidence
> "{direct user quote}" — @{username} (Rank #{rank}, {crowd_tier})
> "{another quote}" — @{username2} (Rank #{rank}, {crowd_tier})
### Context
{Description of the gap, what users expected vs what happened}
### Score API Position of Reporters
| User | Rank | Tier | Signal Weight |
|------|------|------|---------------|
| {username} | #{rank} | {crowd_tier}/{elite_tier} | HIGH |
---
*Filed from observer gap analysis — grimoires/keeper/canvas/{canvas}.md*
*Generated by /gap-to-issues*
Labels: feedback, {gap_type} (e.g., data-accuracy, calibration, ux)
For each deduplicated gap, scan the MER timeline for snapshots of affected wallets:
# For each affected wallet in the gap
for wallet_alias in "${affected_wallets[@]}"; do
mer_files=$(grep -rl "wallet_alias: $wallet_alias" grimoires/keeper/timeline/MER-*.md 2>/dev/null || true)
if [[ -n "$mer_files" ]]; then
# Use most recent MER (last in sorted list)
latest_mer=$(echo "$mer_files" | sort | tail -1)
# Extract screenshot_url and score position from frontmatter/Data State
fi
done
If MER(s) found for any affected wallet, append to the issue body (after Evidence, before footer):
### Visual Evidence
| User | MER | Screenshot | Rank | Tier |
|------|-----|------------|------|------|
| {username} | [[timeline/{mer_id}]] |  | #{rank} | {crowd_tier} |
| {username2} | [[timeline/{mer_id2}]] | (data-only) | #{rank2} | {crowd_tier2} |
For wallets with screenshots, embed the image inline. For data-only MERs, show "(data-only)" in the screenshot column. For wallets with no MER at all, omit the row.
If no MERs exist for any affected wallet, skip this section entirely — the issue uses text-only evidence (existing behavior).
Score Position at Capture table (one per wallet with a MER):
### Score Position at Capture
| User | Combined | OG | NFT | Onchain | Crowd Tier | Elite Tier |
|------|----------|----|-----|---------|------------|------------|
| {username} | {combined} | {og} | {nft} | {onchain} | {crowd_tier} | {elite_tier} |
Display all drafted issues to operator for confirmation:
Gap Issues Ready to File:
1. [score-api] Data staleness in NFT holdings (HIGH)
Evidence: 3 users (xabbu, elcapitan, ncs)
→ File? [Y/n]
2. [midi-interface] Badge checklist missing earned indicators (MEDIUM)
Evidence: 1 user (xabbu)
→ File? [Y/n]
3. [score-api] Trust filter threshold unclear (LOW)
Evidence: 1 user (juri23)
→ File? [Y/n]
In --dry-run mode: Show drafts without the confirmation prompt.
For each confirmed issue:
gh issue create --repo 0xHoneyJar/{repo} \
--title "{title}" \
--body "{body}" \
--label "feedback,{type_label}"
Capture the issue URL from output.
For each filed gap, update the canvas:
IDENTIFIED to FILEDIssue: {url}| Error | Resolution |
|---|---|
| No canvases found | Report "No canvases to scan" |
| No GAP sections found | Report "No unfiled gaps detected" |
gh CLI not authenticated | Error with gh auth login instruction |
| Issue creation fails | Log error, continue with remaining issues |
| Canvas write fails | Log warning, issue is still filed |
--dry-run creates no issues/analyze-gap — Single canvas gap analysis/file-gap — Single gap filing (this skill batches across canvases)/daily-synthesis — Detects gaps from UI feedback