From b6fcfd84b7f959b32dd8468c89653b965313b7b5 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sun, 29 Mar 2026 21:02:50 -0700 Subject: [PATCH] refactor: remove dead contributor mode, replace with operational self-improvement slot Contributor mode never fired in 18 days of heavy use (required manual opt-in via gstack-config, gated behind _CONTRIB=true, wrote disconnected markdown). Removes: generateContributorMode(), _CONTRIB bash var, 2 E2E tests, touchfile entry, doc references. Cleans up skip-lists in plan-ceo-review, autoplan, review resolver, and document-release templates. The operational self-improvement system (next commit) replaces this slot with automatic learning capture that requires no opt-in. Co-Authored-By: Claude Opus 4.6 (1M context) --- ARCHITECTURE.md | 2 +- CONTRIBUTING.md | 23 +++++--------- SKILL.md | 19 ------------ autoplan/SKILL.md | 21 ------------- autoplan/SKILL.md.tmpl | 1 - benchmark/SKILL.md | 19 ------------ browse/SKILL.md | 19 ------------ canary/SKILL.md | 19 ------------ codex/SKILL.md | 19 ------------ connect-chrome/SKILL.md | 19 ------------ cso/SKILL.md | 19 ------------ design-consultation/SKILL.md | 19 ------------ design-review/SKILL.md | 19 ------------ design-shotgun/SKILL.md | 19 ------------ document-release/SKILL.md | 21 +------------ document-release/SKILL.md.tmpl | 2 +- investigate/SKILL.md | 19 ------------ land-and-deploy/SKILL.md | 19 ------------ learn/SKILL.md | 19 ------------ office-hours/SKILL.md | 19 ------------ plan-ceo-review/SKILL.md | 22 +------------ plan-ceo-review/SKILL.md.tmpl | 2 +- plan-design-review/SKILL.md | 19 ------------ plan-eng-review/SKILL.md | 20 ------------ qa-only/SKILL.md | 19 ------------ qa/SKILL.md | 19 ------------ retro/SKILL.md | 19 ------------ review/SKILL.md | 19 ------------ scripts/resolvers/preamble.ts | 24 +-------------- scripts/resolvers/review.ts | 1 - setup-browser-cookies/SKILL.md | 19 ------------ setup-deploy/SKILL.md | 19 ------------ ship/SKILL.md | 19 ------------ test/gen-skill-docs.test.ts | 8 ++--- test/helpers/touchfiles.ts | 2 -- test/skill-e2e-bws.test.ts | 45 --------------------------- test/skill-e2e.test.ts | 56 ---------------------------------- 37 files changed, 18 insertions(+), 650 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index e9d63d83..086bb2e4 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -217,7 +217,7 @@ Every skill starts with a `{{PREAMBLE}}` block that runs before the skill's own 1. **Update check** — calls `gstack-update-check`, reports if an upgrade is available. 2. **Session tracking** — touches `~/.gstack/sessions/$PPID` and counts active sessions (files modified in the last 2 hours). When 3+ sessions are running, all skills enter "ELI16 mode" — every question re-grounds the user on context because they're juggling windows. -3. **Contributor mode** — reads `gstack_contributor` from config. When true, the agent files casual field reports to `~/.gstack/contributor-logs/` when gstack itself misbehaves. +3. **Operational self-improvement** — at the end of every skill session, the agent reflects on failures (CLI errors, wrong approaches, project quirks) and logs operational learnings to the project's JSONL file for future sessions. 4. **AskUserQuestion format** — universal format: context, question, `RECOMMENDATION: Choose X because ___`, lettered options. Consistent across all skills. 5. **Search Before Building** — before building infrastructure or unfamiliar patterns, search first. Three layers of knowledge: tried-and-true (Layer 1), new-and-popular (Layer 2), first-principles (Layer 3). When first-principles reasoning reveals conventional wisdom is wrong, the agent names the "eureka moment" and logs it. See `ETHOS.md` for the full builder philosophy. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b6dba47c..fcb9c279 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,26 +20,19 @@ Now edit any `SKILL.md`, invoke it in Claude Code (e.g. `/review`), and see your bin/dev-teardown # deactivate — back to your global install ``` -## Contributor mode +## Operational self-improvement -Contributor mode turns gstack into a self-improving tool. Enable it and Claude Code -will periodically reflect on its gstack experience — rating it 0-10 at the end of -each major workflow step. When something isn't a 10, it thinks about why and files -a report to `~/.gstack/contributor-logs/` with what happened, repro steps, and what -would make it better. +gstack automatically learns from failures. At the end of every skill session, the agent +reflects on what went wrong (CLI errors, wrong approaches, project quirks) and logs +operational learnings to `~/.gstack/projects/{slug}/learnings.jsonl`. Future sessions +surface these learnings automatically, so gstack gets smarter on your codebase over time. -```bash -~/.claude/skills/gstack/bin/gstack-config set gstack_contributor true -``` - -The logs are for **you**. When something bugs you enough to fix, the report is -already written. Fork gstack, symlink your fork into the project where you hit -the issue, fix it, and open a PR. +No setup needed. Learnings are logged automatically. View them with `/learn`. ### The contributor workflow -1. **Use gstack normally** — contributor mode reflects and logs issues automatically -2. **Check your logs:** `ls ~/.gstack/contributor-logs/` +1. **Use gstack normally** — operational learnings are captured automatically +2. **Check your learnings:** `/learn` or `ls ~/.gstack/projects/*/learnings.jsonl` 3. **Fork and clone gstack** (if you haven't already) 4. **Symlink your fork into the project where you hit the bug:** ```bash diff --git a/SKILL.md b/SKILL.md index ec0ed5aa..9849e78f 100644 --- a/SKILL.md +++ b/SKILL.md @@ -25,7 +25,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -155,24 +154,6 @@ This only happens once. If `PROACTIVE_PROMPTED` is `yes`, skip this entirely. The user always has context you don't. Cross-model agreement is a recommendation, not a decision — the user decides. -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/autoplan/SKILL.md b/autoplan/SKILL.md index 338a1af8..7831d0b4 100644 --- a/autoplan/SKILL.md +++ b/autoplan/SKILL.md @@ -34,7 +34,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -247,24 +246,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: @@ -430,7 +411,6 @@ Follow it inline, **skipping these sections** (already handled by the parent ski - AskUserQuestion Format - Completeness Principle — Boil the Lake - Search Before Building -- Contributor Mode - Completion Status Protocol - Telemetry (run last) @@ -623,7 +603,6 @@ Read each file using the Read tool: - AskUserQuestion Format - Completeness Principle — Boil the Lake - Search Before Building -- Contributor Mode - Completion Status Protocol - Telemetry (run last) - Step 0: Detect base branch diff --git a/autoplan/SKILL.md.tmpl b/autoplan/SKILL.md.tmpl index 5577b64b..2d137334 100644 --- a/autoplan/SKILL.md.tmpl +++ b/autoplan/SKILL.md.tmpl @@ -202,7 +202,6 @@ Read each file using the Read tool: - AskUserQuestion Format - Completeness Principle — Boil the Lake - Search Before Building -- Contributor Mode - Completion Status Protocol - Telemetry (run last) - Step 0: Detect base branch diff --git a/benchmark/SKILL.md b/benchmark/SKILL.md index 10d71673..92914083 100644 --- a/benchmark/SKILL.md +++ b/benchmark/SKILL.md @@ -27,7 +27,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -157,24 +156,6 @@ This only happens once. If `PROACTIVE_PROMPTED` is `yes`, skip this entirely. The user always has context you don't. Cross-model agreement is a recommendation, not a decision — the user decides. -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/browse/SKILL.md b/browse/SKILL.md index 440871c8..d97d737d 100644 --- a/browse/SKILL.md +++ b/browse/SKILL.md @@ -27,7 +27,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -157,24 +156,6 @@ This only happens once. If `PROACTIVE_PROMPTED` is `yes`, skip this entirely. The user always has context you don't. Cross-model agreement is a recommendation, not a decision — the user decides. -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/canary/SKILL.md b/canary/SKILL.md index c91bf15d..a711689d 100644 --- a/canary/SKILL.md +++ b/canary/SKILL.md @@ -27,7 +27,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -222,24 +221,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/codex/SKILL.md b/codex/SKILL.md index a9f409cf..ea365776 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -28,7 +28,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -241,24 +240,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/connect-chrome/SKILL.md b/connect-chrome/SKILL.md index 58df84f9..fe0d14e6 100644 --- a/connect-chrome/SKILL.md +++ b/connect-chrome/SKILL.md @@ -25,7 +25,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -238,24 +237,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/cso/SKILL.md b/cso/SKILL.md index 14b712f4..77b11979 100644 --- a/cso/SKILL.md +++ b/cso/SKILL.md @@ -31,7 +31,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -226,24 +225,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index dc5c9ec7..cc73ec6a 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -32,7 +32,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -245,24 +244,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/design-review/SKILL.md b/design-review/SKILL.md index fa1f104f..2e0b1d17 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -32,7 +32,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -245,24 +244,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/design-shotgun/SKILL.md b/design-shotgun/SKILL.md index e1e4d02d..3ebd118e 100644 --- a/design-shotgun/SKILL.md +++ b/design-shotgun/SKILL.md @@ -29,7 +29,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -224,24 +223,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/document-release/SKILL.md b/document-release/SKILL.md index f75962d7..0fe79991 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -29,7 +29,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -224,24 +223,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: @@ -461,7 +442,7 @@ Read each documentation file and cross-reference it against the diff. Use these - Walk through the setup instructions as if you are a brand new contributor. - Are the listed commands accurate? Would each step succeed? - Do test tier descriptions match the current test infrastructure? -- Are workflow descriptions (dev setup, contributor mode, etc.) current? +- Are workflow descriptions (dev setup, operational learnings, etc.) current? - Flag anything that would fail or confuse a first-time contributor. **CLAUDE.md / project instructions:** diff --git a/document-release/SKILL.md.tmpl b/document-release/SKILL.md.tmpl index 6b1fb7e3..050936f6 100644 --- a/document-release/SKILL.md.tmpl +++ b/document-release/SKILL.md.tmpl @@ -108,7 +108,7 @@ Read each documentation file and cross-reference it against the diff. Use these - Walk through the setup instructions as if you are a brand new contributor. - Are the listed commands accurate? Would each step succeed? - Do test tier descriptions match the current test infrastructure? -- Are workflow descriptions (dev setup, contributor mode, etc.) current? +- Are workflow descriptions (dev setup, operational learnings, etc.) current? - Flag anything that would fail or confuse a first-time contributor. **CLAUDE.md / project instructions:** diff --git a/investigate/SKILL.md b/investigate/SKILL.md index 365a9ca9..1dba6b97 100644 --- a/investigate/SKILL.md +++ b/investigate/SKILL.md @@ -43,7 +43,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -238,24 +237,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index e36426f0..99768441 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -26,7 +26,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -239,24 +238,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/learn/SKILL.md b/learn/SKILL.md index 254c7dcf..6172e1b7 100644 --- a/learn/SKILL.md +++ b/learn/SKILL.md @@ -29,7 +29,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -224,24 +223,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index d624dc37..b46e9f60 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -34,7 +34,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -247,24 +246,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/plan-ceo-review/SKILL.md b/plan-ceo-review/SKILL.md index 0090752c..b3ac1b25 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -32,7 +32,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -245,24 +244,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: @@ -533,7 +514,6 @@ Follow it inline, **skipping these sections** (already handled by the parent ski - AskUserQuestion Format - Completeness Principle — Boil the Lake - Search Before Building -- Contributor Mode - Completion Status Protocol - Telemetry (run last) @@ -569,7 +549,7 @@ If they choose A: Read the office-hours skill file from disk: Follow it inline, skipping these sections (already handled by parent skill): Preamble, AskUserQuestion Format, Completeness Principle, Search Before Building, -Contributor Mode, Completion Status Protocol, Telemetry. +Completion Status Protocol, Telemetry. Note current Step 0A progress so you don't re-ask questions already answered. After completion, re-run the design doc check and resume the review. diff --git a/plan-ceo-review/SKILL.md.tmpl b/plan-ceo-review/SKILL.md.tmpl index d32a076e..16aea4f9 100644 --- a/plan-ceo-review/SKILL.md.tmpl +++ b/plan-ceo-review/SKILL.md.tmpl @@ -148,7 +148,7 @@ If they choose A: Read the office-hours skill file from disk: Follow it inline, skipping these sections (already handled by parent skill): Preamble, AskUserQuestion Format, Completeness Principle, Search Before Building, -Contributor Mode, Completion Status Protocol, Telemetry. +Completion Status Protocol, Telemetry. Note current Step 0A progress so you don't re-ask questions already answered. After completion, re-run the design doc check and resume the review. diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index a6be9782..af43a069 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -30,7 +30,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -243,24 +242,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/plan-eng-review/SKILL.md b/plan-eng-review/SKILL.md index 52b6993d..badef1f9 100644 --- a/plan-eng-review/SKILL.md +++ b/plan-eng-review/SKILL.md @@ -31,7 +31,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -244,24 +243,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: @@ -443,7 +424,6 @@ Follow it inline, **skipping these sections** (already handled by the parent ski - AskUserQuestion Format - Completeness Principle — Boil the Lake - Search Before Building -- Contributor Mode - Completion Status Protocol - Telemetry (run last) diff --git a/qa-only/SKILL.md b/qa-only/SKILL.md index 3aa96042..659571f9 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -27,7 +27,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -240,24 +239,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/qa/SKILL.md b/qa/SKILL.md index 89d281e4..57dfe86a 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -33,7 +33,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -246,24 +245,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/retro/SKILL.md b/retro/SKILL.md index 41058c8c..19b487ee 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -27,7 +27,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -222,24 +221,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/review/SKILL.md b/review/SKILL.md index 52560d77..53835327 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -30,7 +30,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -243,24 +242,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/scripts/resolvers/preamble.ts b/scripts/resolvers/preamble.ts index aa0441a2..84612925 100644 --- a/scripts/resolvers/preamble.ts +++ b/scripts/resolvers/preamble.ts @@ -33,7 +33,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(${ctx.paths.binDir}/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(${ctx.paths.binDir}/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -323,26 +322,6 @@ jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg b \`\`\``; } -function generateContributorMode(): string { - return `## Contributor Mode - -If \`_CONTRIB\` is \`true\`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write \`~/.gstack/contributor-logs/{slug}.md\`: -\`\`\` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -\`\`\` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop.`; -} - function generateCompletionStatus(): string { return `## Completion Status Protocol @@ -499,7 +478,7 @@ Avoid filler, throat-clearing, generic optimism, founder cosplay, and unsupporte // Preamble Composition (tier → sections) // ───────────────────────────────────────────── -// T1: core + upgrade + lake + telemetry + voice(trimmed) + contributor + completion +// T1: core + upgrade + lake + telemetry + voice(trimmed) + completion // T2: T1 + voice(full) + ask + completeness // T3: T2 + repo-mode + search // T4: (same as T3 — TEST_FAILURE_TRIAGE is a separate {{}} placeholder, not preamble) @@ -523,7 +502,6 @@ export function generatePreamble(ctx: TemplateContext): string { generateVoiceDirective(tier), ...(tier >= 2 ? [generateAskUserFormat(ctx), generateCompletenessSection()] : []), ...(tier >= 3 ? [generateRepoModeSection(), generateSearchBeforeBuildingSection(ctx)] : []), - generateContributorMode(), generateCompletionStatus(), ]; return sections.join('\n\n'); diff --git a/scripts/resolvers/review.ts b/scripts/resolvers/review.ts index 02fd7765..6200ec09 100644 --- a/scripts/resolvers/review.ts +++ b/scripts/resolvers/review.ts @@ -240,7 +240,6 @@ Follow it inline, **skipping these sections** (already handled by the parent ski - AskUserQuestion Format - Completeness Principle — Boil the Lake - Search Before Building -- Contributor Mode - Completion Status Protocol - Telemetry (run last) diff --git a/setup-browser-cookies/SKILL.md b/setup-browser-cookies/SKILL.md index 3272d613..5c2fe7fe 100644 --- a/setup-browser-cookies/SKILL.md +++ b/setup-browser-cookies/SKILL.md @@ -24,7 +24,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -154,24 +153,6 @@ This only happens once. If `PROACTIVE_PROMPTED` is `yes`, skip this entirely. The user always has context you don't. Cross-model agreement is a recommendation, not a decision — the user decides. -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/setup-deploy/SKILL.md b/setup-deploy/SKILL.md index 3c353e91..79cff939 100644 --- a/setup-deploy/SKILL.md +++ b/setup-deploy/SKILL.md @@ -30,7 +30,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -225,24 +224,6 @@ AI makes completeness near-free. Always recommend the complete option over short Include `Completeness: X/10` for each option (10=all edge cases, 7=happy path, 3=shortcut). -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/ship/SKILL.md b/ship/SKILL.md index a4ff1bd2..aede6dd5 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -28,7 +28,6 @@ mkdir -p ~/.gstack/sessions touch ~/.gstack/sessions/"$PPID" _SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ') find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true -_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true) _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true") _PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no") _BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") @@ -241,24 +240,6 @@ Before building anything unfamiliar, **search first.** See `~/.claude/skills/gst jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "SKILL_NAME" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "ONE_LINE_SUMMARY" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true ``` -## Contributor Mode - -If `_CONTRIB` is `true`: you are in **contributor mode**. At the end of each major workflow step, rate your gstack experience 0-10. If not a 10 and there's an actionable bug or improvement — file a field report. - -**File only:** gstack tooling bugs where the input was reasonable but gstack failed. **Skip:** user app bugs, network errors, auth failures on user's site. - -**To file:** write `~/.gstack/contributor-logs/{slug}.md`: -``` -# {Title} -**What I tried:** {action} | **What happened:** {result} | **Rating:** {0-10} -## Repro -1. {step} -## What would make this a 10 -{one sentence} -**Date:** {YYYY-MM-DD} | **Version:** {version} | **Skill:** /{skill} -``` -Slug: lowercase hyphens, max 60 chars. Skip if exists. Max 3/session. File inline, don't stop. - ## Completion Status Protocol When completing a skill workflow, report status using one of: diff --git a/test/gen-skill-docs.test.ts b/test/gen-skill-docs.test.ts index 27672ede..29162ab1 100644 --- a/test/gen-skill-docs.test.ts +++ b/test/gen-skill-docs.test.ts @@ -213,11 +213,11 @@ describe('gen-skill-docs', () => { expect(browseTmpl).toContain('{{PREAMBLE}}'); }); - test('generated SKILL.md contains contributor mode check', () => { + test('generated SKILL.md contains no contributor mode (removed)', () => { const content = fs.readFileSync(path.join(ROOT, 'SKILL.md'), 'utf-8'); - expect(content).toContain('Contributor Mode'); - expect(content).toContain('gstack_contributor'); - expect(content).toContain('contributor-logs'); + expect(content).not.toContain('Contributor Mode'); + expect(content).not.toContain('gstack_contributor'); + expect(content).not.toContain('contributor-logs'); }); test('generated SKILL.md contains session awareness', () => { diff --git a/test/helpers/touchfiles.ts b/test/helpers/touchfiles.ts index b475daad..f28a933e 100644 --- a/test/helpers/touchfiles.ts +++ b/test/helpers/touchfiles.ts @@ -41,7 +41,6 @@ export const E2E_TOUCHFILES: Record = { 'skillmd-no-local-binary': ['SKILL.md', 'SKILL.md.tmpl', 'scripts/gen-skill-docs.ts'], 'skillmd-outside-git': ['SKILL.md', 'SKILL.md.tmpl', 'scripts/gen-skill-docs.ts'], - 'contributor-mode': ['SKILL.md.tmpl', 'scripts/gen-skill-docs.ts'], 'session-awareness': ['SKILL.md', 'SKILL.md.tmpl', 'scripts/gen-skill-docs.ts'], // QA (+ test-server dependency) @@ -182,7 +181,6 @@ export const E2E_TIERS: Record = { 'skillmd-setup-discovery': 'gate', 'skillmd-no-local-binary': 'gate', 'skillmd-outside-git': 'gate', - 'contributor-mode': 'gate', 'session-awareness': 'gate', // QA — gate for functional, periodic for quality/benchmarks diff --git a/test/skill-e2e-bws.test.ts b/test/skill-e2e-bws.test.ts index 6a611fe7..d207f416 100644 --- a/test/skill-e2e-bws.test.ts +++ b/test/skill-e2e-bws.test.ts @@ -177,51 +177,6 @@ Report the exact output — either "READY: " or "NEEDS_SETUP".`, try { fs.rmSync(nonGitDir, { recursive: true, force: true }); } catch {} }, 60_000); - testConcurrentIfSelected('contributor-mode', async () => { - const contribDir = fs.mkdtempSync(path.join(os.tmpdir(), 'skill-e2e-contrib-')); - const logsDir = path.join(contribDir, 'contributor-logs'); - fs.mkdirSync(logsDir, { recursive: true }); - - const result = await runSkillTest({ - prompt: `You are in contributor mode (gstack_contributor=true). You just ran this browse command and it failed: - -$ /nonexistent/browse goto https://example.com -/nonexistent/browse: No such file or directory - -Per the contributor mode instructions, file a field report to ${logsDir}/browse-missing-binary.md using the Write tool. Include all required sections: title, what you tried, what happened, rating, repro steps, raw output, what would make it a 10, and the date/version footer.`, - workingDirectory: contribDir, - maxTurns: 5, - timeout: 30_000, - testName: 'contributor-mode', - runId, - }); - - logCost('contributor mode', result); - // Override passed: this test intentionally triggers a browse error (nonexistent binary) - // so browseErrors will be non-empty — that's expected, not a failure - recordE2E(evalCollector, 'contributor mode report', 'Skill E2E tests', result, { - passed: result.exitReason === 'success', - }); - - // Verify a contributor log was created with expected format - const logFiles = fs.readdirSync(logsDir).filter(f => f.endsWith('.md')); - expect(logFiles.length).toBeGreaterThan(0); - - // Verify report has key structural sections (agent may phrase differently) - const logContent = fs.readFileSync(path.join(logsDir, logFiles[0]), 'utf-8'); - // Must have a title (# heading) - expect(logContent).toMatch(/^#\s/m); - // Must mention the failed command or browse - expect(logContent).toMatch(/browse|nonexistent|not found|no such file/i); - // Must have some kind of rating - expect(logContent).toMatch(/rating|\/10/i); - // Must have steps or reproduction info - expect(logContent).toMatch(/step|repro|reproduce/i); - - // Clean up - try { fs.rmSync(contribDir, { recursive: true, force: true }); } catch {} - }, 90_000); - testConcurrentIfSelected('session-awareness', async () => { const sessionDir = fs.mkdtempSync(path.join(os.tmpdir(), 'skill-e2e-session-')); diff --git a/test/skill-e2e.test.ts b/test/skill-e2e.test.ts index 91c95f7a..f1a13cec 100644 --- a/test/skill-e2e.test.ts +++ b/test/skill-e2e.test.ts @@ -325,62 +325,6 @@ Report the exact output — either "READY: " or "NEEDS_SETUP".`, try { fs.rmSync(nonGitDir, { recursive: true, force: true }); } catch {} }, 60_000); - testIfSelected('contributor-mode', async () => { - const contribDir = fs.mkdtempSync(path.join(os.tmpdir(), 'skill-e2e-contrib-')); - const logsDir = path.join(contribDir, 'contributor-logs'); - fs.mkdirSync(logsDir, { recursive: true }); - - // Extract contributor mode instructions from generated SKILL.md - const skillMd = fs.readFileSync(path.join(ROOT, 'SKILL.md'), 'utf-8'); - const contribStart = skillMd.indexOf('## Contributor Mode'); - const contribEnd = skillMd.indexOf('\n## ', contribStart + 1); - const contribBlock = skillMd.slice(contribStart, contribEnd > 0 ? contribEnd : undefined); - - const result = await runSkillTest({ - prompt: `You are in contributor mode (_CONTRIB=true). - -${contribBlock} - -OVERRIDE: Write contributor logs to ${logsDir}/ instead of ~/.gstack/contributor-logs/ - -Now try this browse command (it will fail — there is no binary at this path): -/nonexistent/path/browse goto https://example.com - -This is a gstack issue (the browse binary is missing/misconfigured). -File a contributor report about this issue. Then tell me what you filed.`, - workingDirectory: contribDir, - maxTurns: 8, - timeout: 60_000, - testName: 'contributor-mode', - runId, - }); - - logCost('contributor mode', result); - // Override passed: this test intentionally triggers a browse error (nonexistent binary) - // so browseErrors will be non-empty — that's expected, not a failure - recordE2E('contributor mode report', 'Skill E2E tests', result, { - passed: result.exitReason === 'success', - }); - - // Verify a contributor log was created with expected format - const logFiles = fs.readdirSync(logsDir).filter(f => f.endsWith('.md')); - expect(logFiles.length).toBeGreaterThan(0); - - // Verify new reflection-based format - const logContent = fs.readFileSync(path.join(logsDir, logFiles[0]), 'utf-8'); - expect(logContent).toContain('Hey gstack team'); - expect(logContent).toContain('What I was trying to do'); - expect(logContent).toContain('What happened instead'); - expect(logContent).toMatch(/rating/i); - // Verify report has repro steps (agent may use "Steps to reproduce", "Repro Steps", etc.) - expect(logContent).toMatch(/repro|steps to reproduce|how to reproduce/i); - // Verify report has date/version footer (agent may format differently) - expect(logContent).toMatch(/date.*2026|2026.*date/i); - - // Clean up - try { fs.rmSync(contribDir, { recursive: true, force: true }); } catch {} - }, 90_000); - testIfSelected('session-awareness', async () => { const sessionDir = fs.mkdtempSync(path.join(os.tmpdir(), 'skill-e2e-session-'));