diff --git a/benchmark/SKILL.md.tmpl b/benchmark/SKILL.md.tmpl index 61c79aa94..fa1125904 100644 --- a/benchmark/SKILL.md.tmpl +++ b/benchmark/SKILL.md.tmpl @@ -58,7 +58,9 @@ mkdir -p .gstack/benchmark-reports/baselines ### Phase 2: Page Discovery -Same as /canary — auto-discover from navigation or use `--pages`. +Use `--pages` when given. Otherwise open the URL, collect its same-origin `a[href]` +links (skip logout/delete-style URLs), and propose the homepage plus up to 5 main +navigation targets; confirm the list with the user before measuring. If `--diff` mode: ```bash diff --git a/canary/SKILL.md.tmpl b/canary/SKILL.md.tmpl index 2aaf7d709..05c363051 100644 --- a/canary/SKILL.md.tmpl +++ b/canary/SKILL.md.tmpl @@ -245,7 +245,7 @@ If the user chooses A, copy the latest screenshots to the baselines directory an ## Important Rules -- **Speed matters.** Start monitoring within 30 seconds of invocation. Don't over-analyze before monitoring. +- **Speed matters.** The first minutes after a deploy are the point: reach the first monitoring round as soon as the page list is settled. - **Alert on changes, not absolutes.** Compare against baseline, not industry standards. - **Screenshots are evidence.** Every alert includes a screenshot path. No exceptions. - **Transient tolerance.** Only alert on patterns that persist across 2+ consecutive checks. diff --git a/codex/SKILL.md.tmpl b/codex/SKILL.md.tmpl index 9d45b5a39..028587f92 100644 --- a/codex/SKILL.md.tmpl +++ b/codex/SKILL.md.tmpl @@ -108,10 +108,6 @@ The probe multi-signal auth logic accepts: `$CODEX_API_KEY` set, `$OPENAI_API_KE set, or `${CODEX_HOME:-~/.codex}/auth.json` exists. Avoids false-negatives for env-auth users (CI, platform engineers) that file-only checks would reject. -**Update the known-bad list** in `bin/gstack-codex-probe` when a new Codex CLI version -regresses. Current entries (`0.120.0`, `0.120.1`, `0.120.2`) trace to the stdin -deadlock fixed in #972. - --- ## Step 0.6: Resolve portable roots @@ -190,7 +186,7 @@ mode sections. ## Synthesis recommendation (REQUIRED) — all modes Every mode ends by emitting ONE synthesis recommendation line after presenting -Codex's verbatim output, in the canonical format the AskUserQuestion judge grades: +Codex's verbatim output, in this format: ``` Recommendation: because diff --git a/codex/sections/challenge-mode.md.tmpl b/codex/sections/challenge-mode.md.tmpl index ee51379c4..e63db70da 100644 --- a/codex/sections/challenge-mode.md.tmpl +++ b/codex/sections/challenge-mode.md.tmpl @@ -107,7 +107,7 @@ Tokens: N | Est. cost: ~$X.XX 3a. **Synthesis recommendation (REQUIRED).** After presenting the full adversarial output, emit ONE recommendation line summarizing what the user -should do, in the canonical format the AskUserQuestion judge grades: +should do, in this format: ``` Recommendation: because diff --git a/codex/sections/consult-mode.md.tmpl b/codex/sections/consult-mode.md.tmpl index aa668a111..59b71c6be 100644 --- a/codex/sections/consult-mode.md.tmpl +++ b/codex/sections/consult-mode.md.tmpl @@ -193,8 +193,8 @@ Session saved — run /codex again to continue this conversation. "Note: Claude Code disagrees on X because Y." 8. **Synthesis recommendation (REQUIRED).** Emit ONE recommendation line -summarizing what the user should do based on Codex's consult output, in the -canonical format the AskUserQuestion judge grades: +summarizing what the user should do based on Codex's consult output, in this +format: ``` Recommendation: because diff --git a/codex/sections/review-mode.md.tmpl b/codex/sections/review-mode.md.tmpl index 7a821055b..855abad66 100644 --- a/codex/sections/review-mode.md.tmpl +++ b/codex/sections/review-mode.md.tmpl @@ -176,7 +176,7 @@ GATE: UNVERIFIED (Codex completed and tagged nothing; read the output above) 5a. **Synthesis recommendation (REQUIRED).** After presenting Codex's verbatim output and the GATE verdict, emit ONE recommendation line summarizing what the -user should do, in the canonical format the AskUserQuestion judge grades: +user should do, in this format: ``` Recommendation: because diff --git a/context-restore/SKILL.md.tmpl b/context-restore/SKILL.md.tmpl index 9c5fef1fa..bfcdb13d7 100644 --- a/context-restore/SKILL.md.tmpl +++ b/context-restore/SKILL.md.tmpl @@ -7,9 +7,7 @@ description: | saved state (preferring the current branch, falling back across branches) so you can pick up where you left off — even across Conductor workspace handoffs. Use when asked to "resume", "restore context", "where was I", or - "pick up where I left off". Pair with /context-save. - Formerly /checkpoint resume — renamed because Claude Code treats /checkpoint - as a native rewind alias in current environments. (gstack) + "pick up where I left off". Pair with /context-save. (gstack) allowed-tools: - Bash - Read @@ -55,7 +53,7 @@ branch.) Parse the user's input: -- `/context-restore` → load the most recent saved context (any branch) +- `/context-restore` → load the most recent saved context (current branch first, then any branch) - `/context-restore ` → load a specific saved context - `/context-restore list` → tell the user "Use `/context-save list` — listing lives on the save side" and exit. No mode detection here. @@ -234,9 +232,9 @@ in the old bucket until the user copies them with `gstack-slug --adopt-legacy`. - **Never modify code.** This skill only reads saved files and presents them. - **Prefer the current branch's own checkpoint, but keep all branches in the - fallback set.** Cross-branch resume (Conductor handoff) still works when the - current branch has no checkpoint; it just no longer lets a sibling worktree's - newer save shadow this branch's own. + fallback set.** Cross-branch resume (Conductor handoff) works when the + current branch has no checkpoint, and a sibling worktree's newer save never + shadows this branch's own. - **Never present another project's checkpoint as "latest".** Identity is the canonical remote (the root only when there is no remote); a mismatch is reported before any summary. diff --git a/context-save/SKILL.md.tmpl b/context-save/SKILL.md.tmpl index b0d3a1a52..cb9e4d9f8 100644 --- a/context-save/SKILL.md.tmpl +++ b/context-save/SKILL.md.tmpl @@ -7,8 +7,6 @@ description: | so any future session can pick up without losing a beat. Use when asked to "save progress", "save state", "context save", or "save my work". Pair with /context-restore to resume later. - Formerly /checkpoint — renamed because Claude Code treats /checkpoint as a - native rewind alias in current environments, which was shadowing this skill. (gstack) allowed-tools: - Bash @@ -48,7 +46,7 @@ If the user provides a title after the command (e.g., `/context-save auth refact use it as the title. Otherwise, infer a title from the current work. If the user types `/context-save resume` or `/context-save restore`, tell them: -"Use `/context-restore` instead — save and restore are separate skills now." +"Use `/context-restore` to resume — restoring is a separate skill." --- @@ -184,8 +182,7 @@ modified files). Use relative paths from the repo root. Do not write `remote:` o `project_root:` yourself; the stamp step below adds them. Then stamp the project identity. Several projects can share one checkpoints -directory (GitLab nested groups did before #3003), so `/context-restore` needs to -know which project wrote each file. The helper adds `remote:` (canonical origin: +directory, so `/context-restore` needs to know which project wrote each file. The helper adds `remote:` (canonical origin: lowercased host, no credentials, port or `.git`) and `project_root:` to the frontmatter: @@ -281,5 +278,4 @@ If there are no saved contexts, tell the user: "No saved contexts yet. Run - **Infer, don't interrogate.** Use git state and conversation context to fill in the file. Only use AskUserQuestion if the title genuinely cannot be inferred. - **This is a gstack skill, not a Claude Code built-in.** When the user types - `/context-save`, invoke this skill via the Skill tool. The old `/checkpoint` - name collided with Claude Code's native `/rewind` alias — the rename fixed that. + `/context-save`, invoke this skill via the Skill tool. diff --git a/design-consultation/sections/proposal-and-preview.md.tmpl b/design-consultation/sections/proposal-and-preview.md.tmpl index 61c22429e..e511a0610 100644 --- a/design-consultation/sections/proposal-and-preview.md.tmpl +++ b/design-consultation/sections/proposal-and-preview.md.tmpl @@ -326,10 +326,9 @@ Use real token values, no placeholders; omit invented `components` entries and u ```markdown ## Design System -Always read DESIGN.md before making any visual or UI decisions. -All font choices, colors, spacing, and aesthetic direction are defined there. -Do not deviate without explicit user approval. -In QA mode, flag any code that doesn't match DESIGN.md. +Read DESIGN.md before visual or UI work: it defines the fonts, colors, spacing, and +aesthetic direction. Ask the user before departing from it. When reviewing or QA-ing +UI, flag code that doesn't match DESIGN.md. ``` After shipping DESIGN.md, if the session produced screen-level mockups or page layouts diff --git a/design-html/SKILL.md.tmpl b/design-html/SKILL.md.tmpl index 11eeb0d3a..58d5dd277 100644 --- a/design-html/SKILL.md.tmpl +++ b/design-html/SKILL.md.tmpl @@ -231,8 +231,9 @@ _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -n "$_PRETEXT_VENDOR" ] && echo "VENDOR: $_PRETEXT_VENDOR" || echo "VENDOR_MISSING" ``` -- If `VENDOR` found: read the file and inline it in a `` Add a comment: `` @@ -306,17 +307,20 @@ echo "SERVER: http://localhost:$_PORT/finalized.html" echo "PID: $_SERVER_PID" ``` +Remember the printed `SERVER:` URL and `PID:` value; each bash block is a fresh +shell, so later blocks restate them literally. + If python3 is not available, fall back to: ```bash open ``` -Tell the user: "Live preview running at http://localhost:$_PORT/finalized.html. +Tell the user: "Live preview running at . After each edit, just refresh the browser (Cmd+R) to see changes." When the refinement loop ends (Step 4 exits), kill the server: ```bash -kill $_SERVER_PID 2>/dev/null || true +kill 2>/dev/null || true ``` --- @@ -377,7 +381,7 @@ LOOP: 5. Apply feedback using targeted Edit tool changes on the HTML file (do NOT regenerate the entire file — surgical edits only) - 6. Brief summary of what changed (2-3 lines max) + 6. Briefly say what changed 7. If verification screenshots are available, re-take them to confirm the fix diff --git a/design-html/sections/pretext-patterns.md.tmpl b/design-html/sections/pretext-patterns.md.tmpl index 15d33171c..527443fc1 100644 --- a/design-html/sections/pretext-patterns.md.tmpl +++ b/design-html/sections/pretext-patterns.md.tmpl @@ -5,8 +5,8 @@ Pretext API usage patterns. Follow them exactly. **Pattern 1: Basic height computation (Simple layout, Card/grid)** ```js -import { prepare, layout } from './pretext-inline.js' -// Or if inlined: const { prepare, layout } = window.Pretext +import { prepare, layout } from '@chenglou/pretext' +// Vanilla HTML: omit the import; this code follows the inlined bundle in the same