From bbe1087bd8d0cae80b2c877a71f2d8e1dd16fd91 Mon Sep 17 00:00:00 2001 From: bastien Date: Fri, 25 Sep 2026 18:12:15 +0200 Subject: [PATCH 1/3] fix(profiles): full lacked the web/doc gstack tools superpowers does not cover `scrape`, `skillify` (Browser + dogfooding) and `diagram`, `make-pdf` (Docs + translation) join the default profile, user go. The rest of the BDR-017 exclusion list (ios-*, connect-chrome duplicate of open-gstack-browser, gstack-internal tooling) stays out; enable it per session with `profile apply` when needed. --- lib/profiles/full.profile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/profiles/full.profile b/lib/profiles/full.profile index da8a89c..5ecb2f3 100644 --- a/lib/profiles/full.profile +++ b/lib/profiles/full.profile @@ -22,6 +22,8 @@ design-html browse open-gstack-browser setup-browser-cookies +scrape +skillify # === Code work — implementation ====================================== feat personal @@ -61,6 +63,8 @@ qa-only # === Docs + translation ============================================== doc personal document-release +diagram +make-pdf pdf-translate personal # === Session hygiene + memory ======================================== From d7ac457376c22437d3f725db608ceb9896b84480 Mon Sep 17 00:00:00 2001 From: bastien Date: Fri, 25 Sep 2026 18:44:27 +0200 Subject: [PATCH 2/3] =?UTF-8?q?docs:=20CHANGELOG=20full=20profile=20+4=20g?= =?UTF-8?q?stack=20skills=20=E2=80=94=20hotfix=20full-profile-web-doc-skil?= =?UTF-8?q?ls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46e65f2..7e9b01f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -142,6 +142,10 @@ Format follows [Keep a Changelog](https://keepachangelog.com/). (`profile.sh set `), since Steps 2 and 10 rewrite skill state on every run. Step 8.7 no longer parks the 21st pack unconditionally; the pack's state follows the profile. +- **`full` profile gains four gstack skills** superpowers does not cover: + `scrape` and `skillify` (browser + dogfooding), `diagram` and `make-pdf` + (docs). Nothing removed; iOS skills, the `connect-chrome` duplicate and + gstack-internal tooling stay out. - **Routing around a guardrail is the same action** — new `hard_deny` entry: a refused command is never rerun through a wrapper script, alias, heredoc, Makefile target, env file, other shell or other agent; a refusal ends the From 6104ee5c6bc5fdcfd8e39c9505ef2bc728b93907 Mon Sep 17 00:00:00 2001 From: bastien Date: Fri, 25 Sep 2026 18:44:27 +0200 Subject: [PATCH 3/3] =?UTF-8?q?chore(memory):=20journal=20+=20TODO=20?= =?UTF-8?q?=E2=80=94=20hotfix=20full-profile-web-doc-skills?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/memory/journal.md | 1 + .claude/tasks/TODO.md | 7 +++++ ...-09-25-full-profile-web-doc-skills-1809.md | 30 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 .claude/tasks/contracts/2026-09-25-full-profile-web-doc-skills-1809.md diff --git a/.claude/memory/journal.md b/.claude/memory/journal.md index 5a93420..72964c0 100644 --- a/.claude/memory/journal.md +++ b/.claude/memory/journal.md @@ -512,3 +512,4 @@ rules: - feature/guardrail-evasion-citers merged into develop on user go, `gitflow finish` → 771bb77, pushed, copies removed by the lib. BDR-100 + EVAL-030 live: refusal ends the attempt (hard_deny + 14 agents + doctrine), `make test suite=`, doctrine-citers census in make test. No working branch anywhere. - Default profile `full` + magic-MCP residue scrub, user ask. Live magic wiring already gone (BDR-093); residue = prose + one `MAGIC_API_KEY=` line in `~/.claude/.env` (deleted, user go). /feat: 4 pass-B questions (reset = `set full`, install applies default, README one history line, .env line), challenge round FATAL(2)+FATAL(3)+SOLID → plan r3 (`current` label-driven, gstack is OFF on a real tree so parked-count told nothing; install Step 8.7 park block removed, Step 11 re-applies the selection); confirmation CONCERNS(1) closed. Executor DONE, GATE 0 MET, verifier CONFORME 13/13, security PASS (1 LOW: `.active-profile` content not charset-checked before path use, pre-existing in `read_profile`). Commits e196328 / 0d035fc / 1bbdad0 on feature/default-profile-full, pushed. `make test` 236 green + 2 pre-existing T16a. `.env.example` scrub left unstaged: `git add .env*` denied. UNMERGED — human gate. - feature/default-profile-full merged into develop on user go, `gitflow finish` → 1ee6cf6, pushed (develop == origin/develop), local + origin copies removed by the lib. User committed `.env.example` scrub himself (16fea11) before the merge. BDR-101 shipped. Still open for the user: first `bash lib/profile.sh reset` on this machine + new session. +- User: "why is gstack off under full?" → premise stale: it was off before the first `reset` (BDR-030: gstack only via a profile), live state now = full (34 gstack linked, 21st design 5 linked). Browser tools already in full. User go: `scrape`, `skillify`, `diagram`, `make-pdf` added to full.profile via /hotfix (contract `2026-09-25-full-profile-web-doc-skills-1809`, smoke 4/4 + suites green, security PASS) → bbe1087 on bugfix/full-profile-web-doc-skills, pushed, UNMERGED — human gate. After merge: `bash lib/profile.sh apply full` to link the 4. diff --git a/.claude/tasks/TODO.md b/.claude/tasks/TODO.md index 6d0db78..91d43a2 100644 --- a/.claude/tasks/TODO.md +++ b/.claude/tasks/TODO.md @@ -1,5 +1,12 @@ # TODO +## 2026-09-25 — full profile +4 gstack web/doc skills (bugfix/full-profile-web-doc-skills) +User go after the "why is gstack off under full?" answer (it was not: unapplied +default). `scrape`, `skillify`, `diagram`, `make-pdf` join full.profile; the rest +of the BDR-017 exclusion list stays out. /hotfix: smoke 4/4, suites 29 + 17 green, +security PASS, bbe1087 pushed. UNMERGED — human gate. After merge: `bash +lib/profile.sh apply full` on this machine to link the four. + ## 2026-09-25 — default profile = full + magic-MCP residue scrub (feature/default-profile-full) User: "retirer l'API de magic 21st … mettre un profil par défaut … full". Live magic wiring already gone (BDR-093); residue = prose + one `MAGIC_API_KEY=` line in diff --git a/.claude/tasks/contracts/2026-09-25-full-profile-web-doc-skills-1809.md b/.claude/tasks/contracts/2026-09-25-full-profile-web-doc-skills-1809.md new file mode 100644 index 0000000..bef6c84 --- /dev/null +++ b/.claude/tasks/contracts/2026-09-25-full-profile-web-doc-skills-1809.md @@ -0,0 +1,30 @@ +# CONTRACT — full-profile-web-doc-skills +- date: 2026-09-25 | flow: hotfix | branch: bugfix/full-profile-web-doc-skills +- status: active + +## REQUEST (verbatim — IMMUTABLE) +User (after the assistant listed what `full` excludes and offered `scrape`, `skillify`, `diagram`, `make-pdf`): +> oui je veux bien + +/hotfix $ARGUMENTS: +> Ajouter les skills gstack `scrape`, `skillify`, `diagram` et `make-pdf` au profil `full` (`lib/profiles/full.profile`), user go après ma proposition : outils web/doc que superpowers n'apporte pas, exclus de full par BDR-017 ; le reste de la liste exclue (ios-*, connect-chrome doublon, outillage interne gstack) reste exclu. + +## CLARIFICATIONS +none — pass A silent autofill (hotfix weight); pass B: placement inside the +profile file is internal (sections "Browser + dogfooding" for scrape/skillify, +"Docs + translation" for diagram/make-pdf), nothing visible left open. + +## ACCEPTANCE CRITERIA +1. Symptom gone: `bash lib/profile.sh show full --plain` lists `scrape`, + `skillify`, `diagram`, `make-pdf` as gstack entries; no other profile changed. + CHECK: out=$(bash lib/profile.sh show full --plain 2>/dev/null); for s in scrape skillify diagram make-pdf; do printf '%s\n' "$out" | grep -qE "(^|[[:space:]])$s([[:space:]]|$)" || exit 1; done; [ "$(git diff --name-only HEAD -- lib/profiles | grep -vc '^lib/profiles/full.profile$')" -eq 0 ] && echo FULL_HAS_4 + EXPECT: FULL_HAS_4 + EVIDENCE: MET exit=0 marker-found :: FULL_HAS_4 +2. Build/tests green: the profile suites still pass. + CHECK: bash lib/tests/profile-default.test.sh 2>&1 | tail -1 | grep -qE '^PASS=[0-9]+ FAIL=0$' && bash lib/tests/profile-set-managed.test.sh 2>&1 | tail -1 | grep -qE '^PASS=[0-9]+ FAIL=0$' && echo SUITES_OK + EXPECT: SUITES_OK + EVIDENCE: MET exit=0 marker-found :: SUITES_OK +3. (judgement) The four names resolve upstream (`skills-external/gstack//SKILL.md` exists — LRN-022), so `set full` emits no `missing:` warning for them. + +## FILE SCOPE +- lib/profiles/full.profile (4 lines added, nothing removed)