From f363f114ee3e27b45a4ed302f5dd6f43ffc027c4 Mon Sep 17 00:00:00 2001 From: bastien Date: Fri, 25 Sep 2026 19:32:31 +0200 Subject: [PATCH 1/2] fix(gitignore): gstack symlink allowlist lacked skills/diagram `profile.sh apply full` linked skills/diagram (added to full today) and it showed as untracked: the per-skill allowlist never listed it (LRN-025 class). One literal line, alphabetical slot; the full.profile census now finds every bare gstack entry ignored. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 92bfac0..4c0dbdd 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ skills/design-html skills/design-review skills/design-shotgun skills/devex-review +skills/diagram skills/document-release skills/freeze skills/gstack-upgrade From 6bebc6f70cb3ffb2847ccbeabc037ce465702e90 Mon Sep 17 00:00:00 2001 From: bastien Date: Fri, 25 Sep 2026 19:32:55 +0200 Subject: [PATCH 2/2] =?UTF-8?q?chore(memory):=20journal=20+=20TODO=20?= =?UTF-8?q?=E2=80=94=20hotfix=20gitignore-diagram-allowlist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/memory/journal.md | 1 + .claude/tasks/TODO.md | 5 ++-- ...-09-25-gitignore-diagram-allowlist-1930.md | 23 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 .claude/tasks/contracts/2026-09-25-gitignore-diagram-allowlist-1930.md diff --git a/.claude/memory/journal.md b/.claude/memory/journal.md index 03ef85b..4c4ac05 100644 --- a/.claude/memory/journal.md +++ b/.claude/memory/journal.md @@ -514,3 +514,4 @@ rules: - 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. - bugfix/full-profile-web-doc-skills merged into develop on user go, `gitflow finish` → db8c179, pushed, copies removed by the lib. `bash lib/profile.sh apply full` run on this machine: scrape, skillify, diagram, make-pdf linked (gstack on-demand). `skills/diagram` shows untracked: `.gitignore` gstack allowlist lacks it (LRN-025 class) → chore branch. +- /hotfix `.gitignore`: gstack symlink allowlist lacked `skills/diagram` (LRN-025 class, surfaced by `apply full`). One line, contract `2026-09-25-gitignore-diagram-allowlist-1930`, census oracle: every bare gstack entry of full.profile ignored. Security PASS. f363f11 on bugfix/gitignore-diagram-allowlist, pushed, UNMERGED — human gate. diff --git a/.claude/tasks/TODO.md b/.claude/tasks/TODO.md index 671d360..dec5158 100644 --- a/.claude/tasks/TODO.md +++ b/.claude/tasks/TODO.md @@ -5,8 +5,9 @@ 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. Merged into develop db8c179 (user go 2026-09-25); -`apply full` run, four skills linked. Follow-up: `.gitignore` allowlist lacks -`skills/diagram` (untracked symlink) → chore/gitignore-diagram. +`apply full` run, four skills linked. Follow-up done: `.gitignore` allowlist + +`skills/diagram` (f363f11, bugfix/gitignore-diagram-allowlist, UNMERGED — +human gate). ## 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 diff --git a/.claude/tasks/contracts/2026-09-25-gitignore-diagram-allowlist-1930.md b/.claude/tasks/contracts/2026-09-25-gitignore-diagram-allowlist-1930.md new file mode 100644 index 0000000..e354847 --- /dev/null +++ b/.claude/tasks/contracts/2026-09-25-gitignore-diagram-allowlist-1930.md @@ -0,0 +1,23 @@ +# CONTRACT — gitignore-diagram-allowlist +- date: 2026-09-25 | flow: hotfix | branch: bugfix/gitignore-diagram-allowlist +- status: active + +## REQUEST (verbatim — IMMUTABLE) +> `.gitignore` : l'allowlist des symlinks gstack (`skills/`, lignes 3-56) ne contient pas `skills/diagram`, donc le symlink créé par `profile.sh apply full` apparaît untracked (`?? skills/diagram`). Ajouter la ligne `skills/diagram` à sa place alphabétique dans cette liste (LRN-025 : l'allowlist doit couvrir TOUS les skills gstack toggleables). Un seul fichier, une ligne. + +## CLARIFICATIONS +none — pass A silent autofill (hotfix weight); pass B: nothing visible open +(the slot is alphabetical: between `skills/devex-review` and `skills/document-release`). + +## ACCEPTANCE CRITERIA +1. Symptom gone: `skills/diagram` is ignored and no longer untracked. + CHECK: git check-ignore -q skills/diagram && [ -z "$(git status --short -- skills/diagram)" ] && echo DIAGRAM_IGNORED + EXPECT: DIAGRAM_IGNORED + EVIDENCE: MET exit=0 marker-found :: DIAGRAM_IGNORED +2. Build/tests green: the allowlist covers every gstack skill that full lists (LRN-025 census) — every bare gstack entry of full.profile is matched by an ignore rule. + CHECK: miss=0; for s in $(grep -v '^#' lib/profiles/full.profile | awk 'NF==1{print $1}'); do git check-ignore -q "skills/$s" || { echo "not ignored: skills/$s"; miss=1; }; done; [ "$miss" -eq 0 ] && echo ALLOWLIST_COVERS_FULL + EXPECT: ALLOWLIST_COVERS_FULL + EVIDENCE: MET exit=0 marker-found :: ALLOWLIST_COVERS_FULL + +## FILE SCOPE +- .gitignore (one line added)