Source profileQuality 92/100

code-yeongyu/senpi/.factory/skills/tmux-manual-qa/SKILL.md

tmux-manual-qa

Run a single manual tmux-based QA scenario for the todo continuation feature against the real CLI (./pi-test.sh) in an interactive TUI. Captures scrollback, asserts deterministic pass/fail count markers, and cleans up test fixtures. Use only for the manual-qa milestone features.

Source repository stars
407
Declared platforms
0
Static risk flags
1
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

You are executing ONE manual QA feature from features.json that drives the real ./pi-test.sh CLI inside a tmux session, captures scrollback, and asserts deterministic pass/fail markers.

Best for

    Not for

    • Modifying source code "to make the test pass."
    • Committing log/count files from local-ignore/.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/code-yeongyu/senpi --skill ".factory/skills/tmux-manual-qa"
    Safe inspection promptEditorial

    Inspect the Agent Skill "tmux-manual-qa" from https://github.com/code-yeongyu/senpi/blob/84a19a642a160fe040206a506664fc6f1e3f07c5/.factory/skills/tmux-manual-qa/SKILL.md at commit 84a19a642a160fe040206a506664fc6f1e3f07c5. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Procedure

      Read your feature's description carefully. Identify: - Which scenario you are running (default-enabled / settings-disable / flag-override / re-entry-guard). - What the expected scrollback should contain. - The expected rg -c count (0 or ≥1). - The log filename convention (local-…

      Which scenario you are running (default-enabled / settings-disable / flag-override / re-entry-guard).What the expected scrollback should contain.The expected rg -c count (0 or ≥1).
    2. 02

      Step 1 — Orient

      Read your feature's description carefully. Identify: - Which scenario you are running (default-enabled / settings-disable / flag-override / re-entry-guard). - What the expected scrollback should contain. - The expected rg -c count (0 or ≥1). - The log filename convention (local-…

      Which scenario you are running (default-enabled / settings-disable / flag-override / re-entry-guard).What the expected scrollback should contain.The expected rg -c count (0 or ≥1).
    3. 03

      Step 2 — Set up the fixture (if needed)

      If your scenario requires a test .pi/settings.json: bash mkdir -p .pi echo '{ "todotools": { "continuation": { "enabled": false } } }' .pi/settings.json.qa-backup-test

      If your scenario requires a test .pi/settings.json: bash mkdir -p .pi echo '{ "todotools": { "continuation": { "enabled": false } } }' .pi/settings.json.qa-backup-test
    4. 04

      Step 3 — Launch tmux session and drive the CLI

      Start a new tmux session for the scenario:

      Start a new tmux session for the scenario:Wait for the CLI to initialize (use sleep 3 or poll for the prompt).Send the scripted prompts that drive the agent to create todos and end its turn. Example:
    5. 05

      Step 4 — Capture scrollback

      Review the “Step 4 — Capture scrollback” section in the pinned source before continuing.

      Review and apply the “Step 4 — Capture scrollback” source section.

    Permission review

    Static risk signals and limitations

    Writes files

    medium · line 20

    The documentation asks the agent to create, modify, or delete local files.

    **Deterministic evidence:** every manual feature includes a `rg -c "SYSTEM DIRECTIVE: SENPI"` count check. Always save the count to a `.count` file alongside the `.log` file. The count is the canonical pass/fail marker, not the visual scrol

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score92/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars407SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    code-yeongyu/senpi
    Skill path
    .factory/skills/tmux-manual-qa/SKILL.md
    Commit
    84a19a642a160fe040206a506664fc6f1e3f07c5
    License
    MIT
    Collected
    2026-08-28
    Default branch
    main
    View the original SKILL.md

    Tmux Manual QA Worker

    You are executing ONE manual QA feature from features.json that drives the real ./pi-test.sh CLI inside a tmux session, captures scrollback, and asserts deterministic pass/fail markers.

    Context you MUST read before starting

    1. Feature spec: features.json — your assigned feature.
    2. Mission document: mission.md.
    3. Validation contract: the fulfills IDs for your feature in validation-contract.md.
    4. Architecture: .factory/library/architecture.md.
    5. User testing surface: .factory/library/user-testing.md — especially the Manual tmux TUI section.
    6. Mission AGENTS.md: boundaries and git safety rules.

    Hard rules

    • Real LLM calls are allowed in this skill (manual QA only). The user's ~/.pi/agent/auth.json is presumed configured. Do NOT touch that file.
    • Capture to local-ignore/ — never commit QA evidence. The local-ignore/ directory is gitignored.
    • Clean up test fixtures. If you create a temporary .pi/settings.json for a scenario, delete it after capture so subsequent tests start from a clean slate.
    • Deterministic evidence: every manual feature includes a rg -c "SYSTEM DIRECTIVE: SENPI" count check. Always save the count to a .count file alongside the .log file. The count is the canonical pass/fail marker, not the visual scrollback.
    • No src/ changes: you are verifying only. If you find a bug, return to orchestrator with details and do NOT fix it yourself — a coding-agent-extension-worker will handle the fix in a follow-up feature.

    Prerequisites

    Before running any scenario, confirm:

    1. ./pi-test.sh is executable and runs (check ls -la pi-test.sh).
    2. npm run build has been run at least once after the continuation feature was merged (check packages/coding-agent/dist/cli.js exists and contains the continuation code).
    3. tmux is installed (command -v tmux).
    4. rg is installed (command -v rg).
    5. local-ignore/ directory exists at repo root (create if needed).

    If any prerequisite is missing, return to orchestrator.

    Procedure

    Step 1 — Orient

    Read your feature's description carefully. Identify:

    • Which scenario you are running (default-enabled / settings-disable / flag-override / re-entry-guard).
    • What the expected scrollback should contain.
    • The expected rg -c count (0 or ≥1).
    • The log filename convention (local-ignore/qa-cross-XXX-*.log).

    Step 2 — Set up the fixture (if needed)

    If your scenario requires a test .pi/settings.json:

    mkdir -p .pi
    echo '{ "todotools": { "continuation": { "enabled": false } } }' > .pi/settings.json.qa-backup-test
    # (Back up any existing .pi/settings.json first so we can restore.)
    

    Always back up the existing file before writing the test fixture, and restore it after capture.

    Step 3 — Launch tmux session and drive the CLI

    Start a new tmux session for the scenario:

    TMUX_SESSION="pi-qa-${FEATURE_ID}"
    tmux kill-session -t "$TMUX_SESSION" 2>/dev/null || true
    tmux new-session -d -s "$TMUX_SESSION" "./pi-test.sh${EXTRA_FLAGS}"
    

    Wait for the CLI to initialize (use sleep 3 or poll for the prompt).

    Send the scripted prompts that drive the agent to create todos and end its turn. Example:

    tmux send-keys -t "$TMUX_SESSION" 'create a 2-item todo list about testing this feature, mark one as in_progress, then pause' Enter
    sleep 10   # wait for the agent to respond
    

    Use sleep generously between interactions — real model calls take time. A 10-20 second pause between prompts is reasonable.

    Step 4 — Capture scrollback

    tmux capture-pane -p -t "$TMUX_SESSION" -S -10000 > local-ignore/qa-cross-XXX-tmux.log
    

    Step 5 — Assert the count marker

    rg -c 'SYSTEM DIRECTIVE: SENPI' local-ignore/qa-cross-XXX-tmux.log > local-ignore/qa-cross-XXX-tmux.count || true
    COUNT=$(cat local-ignore/qa-cross-XXX-tmux.count)
    echo "Continuation directive count: $COUNT"
    

    Compare against the expected count in your feature's expectedBehavior:

    • manual-tmux-qa-default-enabled: expect ≥1
    • manual-tmux-qa-settings-disable: expect 0
    • manual-tmux-qa-flag-override: flag-on expect 0, flag-off expect ≥1
    • manual-tmux-qa-reentry-guard: expect per-turn count ≤1 (check manually because it needs per-turn framing)

    Step 6 — Tear down

    tmux kill-session -t "$TMUX_SESSION" 2>/dev/null || true
    

    Restore any backup settings files. Remove any temporary fixtures you created.

    Step 7 — Verify evidence files

    ls -l local-ignore/qa-cross-XXX-*.log local-ignore/qa-cross-XXX-*.count
    

    Confirm both files exist.

    Step 8 — Handoff

    Report:

    • successState: "success" if the count matches expected; "failure" if not.
    • evidenceFiles: paths to the captured log and count files.
    • observedCount: the actual number.
    • expectedCount: the expected range.
    • scrollbackSummary: 3-5 lines describing what you saw (agent behavior, any error messages, any unexpected output).
    • discoveredIssues: anything buggy or surprising observed during the run (surface it — do not silently ignore).

    Escalation triggers

    Return to orchestrator immediately if:

    • ./pi-test.sh fails to start.
    • tmux is not available.
    • The agent hangs for > 60 seconds without a response (may indicate a provider outage or a bug).
    • The count does not match expected and you cannot reproduce the failure deterministically (this is a bug that needs a coding-agent-extension-worker fix).
    • You observe any runtime error, stack trace, or TypeError in the scrollback.
    • Test fixtures (settings.json) cannot be backed up or restored.

    Anti-patterns

    • Modifying source code "to make the test pass."
    • Committing log/count files from local-ignore/.
    • Leaving test settings.json fixtures behind after capture.
    • Visual "it looks fine" confirmation without the rg -c count file.
    • Using the user's live settings without a backup/restore cycle.

    Frequently asked questions

    What to verify before installation and use

    What does the tmux-manual-qa source document cover?

    You are executing ONE manual QA feature from features.json that drives the real ./pi-test.sh CLI inside a tmux session, captures scrollback, and asserts deterministic pass/fail markers.

    How do I install tmux-manual-qa?

    The source record exposes this install command: npx skills add https://github.com/code-yeongyu/senpi --skill ".factory/skills/tmux-manual-qa". Inspect the command and pinned source before running it.

    Which permission-related actions were detected?

    Static rules flagged write-files in the source; the page lists the matching lines and excerpts.

    Alternatives

    Compare before choosing

    Computed 10045,960

    coreyhaines31/marketingskills

    ab-testing

    When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

    Computed 10029,236

    garrytan/gbrain

    bulk-ingestion

    End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.

    Computed 10025,136

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 1005,277

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing