원클릭으로
concierge-testing
Validate gap hypotheses by manually simulating features for individual users and measuring commitment, not satisfaction.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Validate gap hypotheses by manually simulating features for individual users and measuring commitment, not satisfaction.
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.
Batch scan canvases for GAP sections, deduplicate, route to correct repos, draft issue bodies, and file confirmed issues.
Parallel multi-user processing using Claude Code native teams. Leader spawns workers per user, each runs /ingest-dm, leader aggregates for cross-canvas patterns.
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 | concierge-testing |
| description | Validate gap hypotheses by manually simulating features for individual users and measuring commitment, not satisfaction. |
| user-invocable | true |
| allowed-tools | Read, Write, Glob, Grep, Edit, Bash |
Validate a gap hypothesis before any code is written. Manually simulate the proposed feature for ONE user whose canvas shows the strongest evidence, then measure commitment — not satisfaction, not compliments, commitment.
This skill sits between /analyze-gap and /file-gap in the pipeline. It is the validation step that separates Level 4 (Obstacle) from Level 5 (Validated Obstacle).
Commitment is the only metric that matters. "That's cool" is a kill signal. "How do I keep this?" is a build signal. The difference between a feature worth building and a feature that wastes Zerker's time is whether users change their behavior when given the thing.
/concierge-test {hypothesis-id}
/concierge-test {hypothesis-id} --canvas {username}
/experiment {hypothesis-id}
/experiment {hypothesis-id} --canvas {username}
Examples:
/concierge-test H3 # Test hypothesis H3, auto-select best user
/concierge-test H3 --canvas xabbu # Test H3 specifically with xabbu
/experiment H5 --canvas el-capitan # Alias: test H5 with el-capitan
Arguments:
{hypothesis-id}: Hypothesis ID from canvas Level 3 Hypotheses (required)--canvas {username}: Override user selection (optional — auto-selects strongest evidence)If hypothesis has fewer than 3 sources, WARN:
Hypothesis {id} has only {N} source(s). Concierge tests are most
reliable at Pattern level (3+ sources). Proceed anyway? Results
will carry lower confidence.
If --canvas provided, use that user. Otherwise, select the best candidate:
Selection Criteria (in priority order):
power_user or reactivating preferred over churningLoad selected canvas:
grimoires/keeper/canvas/{username}-canvas.md
Extract:
Create a manual simulation of the proposed feature. The simulation must be:
Simulation Types:
| Hypothesis Type | Simulation Approach |
|---|---|
| Recognition / status | Manually assign a title or badge via DM: "We noticed you did X; we've flagged your wallet as [title]." |
| Information gap | Send them the data they were missing: "Here's what your profile looks like behind the scenes: [data]" |
| Workflow friction | Walk them through the manual workaround: "Try doing X → Y → Z. Does that get you what you need?" |
| Social / comparison | Share relevant context: "You're one of {N} wallets that [behavior]. Here's how that compares: [data]" |
Draft the DM message. Use the user's own words as anchors:
hey {username} — you mentioned "{exact quote from canvas}". we
[describe simulation]. does that help with what you're doing?
Before sending, record the simulation in provenance:
echo -n "{simulation_message}" | scripts/provenance/gate.sh \
--source-type concierge_test \
--confidence exact \
--canvas-target "{username}" \
--raw-source-ref "concierge-{hypothesis_id}-{username}-{date}" \
--ingested-by concierge-test
This step requires human action. The agent prepares the message; the operator sends it.
Output the prepared message:
--- CONCIERGE TEST: {hypothesis_id} ---
Target: @{username}
Hypothesis: {hypothesis text}
Simulation: {what we're manually doing}
Message to send:
─────────────────────────────────────
{prepared DM message}
─────────────────────────────────────
After sending, run:
/concierge-test {hypothesis_id} --record {commitment_level}
Commitment levels:
strong — asked how to keep it, changed behavior
social — bragged to others, shared it
kill — "that's cool, thanks" (polite dismissal)
silence — no response after 72 hours
When the operator reports back with --record {level}:
| Response | Classification | Signal | Action |
|---|---|---|---|
| Asked how to keep it | Strong | Build signal | Create Problem-Constraint Doc → Zerker handoff |
| Changed behavior after receiving it | Strong | Build signal | Create Problem-Constraint Doc → Zerker handoff |
| Bragged to others / shared it | Social | Build with sharing | Create Problem-Constraint Doc with social context → Zerker handoff |
| "That's cool, thanks" | Kill | Don't build | Close hypothesis. Note in canvas. Save as Atomic Learning. |
| Asked clarifying questions, then engaged | Strong | Build signal | Create Problem-Constraint Doc → Zerker handoff |
| Polite but no follow-up action | Kill | Don't build | Close hypothesis. Note in canvas. |
| No response after 72 hours | Silence | Need isn't strong enough | Close hypothesis unless user is known to be inactive. |
Update the user's canvas with concierge test result:
## Concierge Tests
### Test: {hypothesis_id} — {date}
| Field | Value |
|-------|-------|
| **Hypothesis** | {hypothesis text} |
| **Simulation** | {what we manually did} |
| **Commitment Level** | {strong / social / kill / silence} |
| **User Response** | "{exact response quote}" |
| **Provenance** | `[prov:{hash}]` |
**Interpretation**: {what this tells us about the hypothesis}
Update hypothesis confidence:
If Strong or Social signal:
grimoires/keeper/templates/problem-constraint-doc.md
grimoires/keeper/problem-constraints/{hypothesis_id}-{date}.md
/file-gapIf Kill or Silence signal:
falsified or inconclusivegrimoires/keeper/learnings/:
## Learning: {hypothesis_id} — {date}
**Hypothesis**: {text}
**Test**: {simulation description}
**Result**: {kill/silence}
**Lesson**: {what we learned — why the need wasn't strong enough}
**Reuse**: {when this learning applies to future hypotheses}
Concierge Test Complete
Hypothesis: {id} — {text}
Target User: @{username}
Simulation: {description}
Commitment: {strong / social / kill / silence}
Result:
{If strong/social:}
✓ Problem-Constraint Doc created: grimoires/keeper/problem-constraints/{id}-{date}.md
✓ Ready for Zerker handoff: /file-gap {id}
{If kill/silence:}
✗ Hypothesis {falsified/inconclusive}
✓ Learning recorded: grimoires/keeper/learnings/{id}-{date}.md
✗ No issue filed — need not validated
Next Steps:
{If validated:} /file-gap {id} — file as GitHub issue for implementation
{If falsified:} Review canvas for alternative hypotheses
{If inconclusive:} Consider re-testing with different user or different simulation
| Error | Resolution |
|---|---|
| Hypothesis ID not found | List available hypotheses from canvases |
| No canvas with hypothesis | Suggest running /observe or /analyze-gap first |
| Canvas has no wallet / score context | Proceed without score weighting, note limitation |
| User unreachable | Suggest alternative user or defer test |
| Provenance gate error | Log error, proceed with test (degrade gracefully) |
| Operator doesn't report back | After 7 days, auto-classify as silence |
After concierge test:
/analyze-gap — Upstream: identifies gaps to test/file-gap — Downstream: files validated obstacles as issues/observe — Signal capture that populates canvases/follow-up — Prior messages inform simulation designgrimoires/keeper/ARCHETYPE.md — The Listener archetype governing this skillgrimoires/keeper/templates/problem-constraint-doc.md — Output template