Commit Graph

74 Commits

Author SHA1 Message Date
bastien
476195978e feat(seo/geo): CMS plugin-first + shared-file edit discipline + Bing/IndexNow mandatory
Post-review hardening of the parallel seo+geo dispatch:

- skills/seo/SKILL.md: shared-file edit discipline embedded in both dispatch prompts (Edit-only on shared templates, Write only on sole-owned files). CROSS-AGENT NOTES flow clarified — dispatcher escalates to SEO.md §11 as user action with automation options (Option B).
- agents/seo-analyzer.md: STEP 2 detects 8 CMS (WordPress/Drupal/Magento/Shopify/Joomla/PrestaShop/Ghost/Wix-Squarespace-Webflow) and presence of SEO plugins. STEP 10 emits P0 quick win "install CMS plugin" when CMS detected without plugin. STEP 5 expands topic clusters / silos sémantiques. Framework notes in STEP 12 cover all 8 CMS explicitly.
- agents/geo-analyzer.md: STEP 6 checks /faq path + FAQPage schema presence. STEP 11 mandates 3 AI-index user actions per FULL audit (Bing Webmaster Tools / GSC / IndexNow) + Apple Business Connect for local business.
- agents/resources/automation-catalog.md: new structured CMS plugin section (install links + pricing per platform). AI-index submission section rewritten with Bing Webmaster as canonical entry for ChatGPT Search/Copilot/DuckDuckGo, IndexNow protocol details, Brave Web Discovery, Apple Business Connect.
- agents/resources/llms-txt-template.md: explicit note that /ai.txt and /about-data are NOT real standards; llms.txt (Jeremy Howard) remains the only proposed one.

Rationale: third-party AI review of the skill surfaced 5 gaps — race condition on shared templates (Layout.astro holds meta + JSON-LD), ambiguous cross-agent flow, missing CMS-plugin-first logic (Gemini), under-exposed Bing Webmaster (ChatGPT Search channel), and minor accuracy items.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 16:57:32 +02:00
bastien
95347d2e47 feat(seo/geo): split into parallel seo + geo agents with shared resources
Refactor the monolithic seo-analyzer into two specialist agents
orchestrated in parallel by the /seo skill, plus a standalone /geo
skill for AI-only audits.

Changes
- agents/seo-analyzer.md: refocused on classical engines (Google, Bing,
  DuckDuckGo). Adds Core Web Vitals 2.0 (LCP/INP/CLS + VSI), CSP + full
  security headers, hreflang audit, video SEO (transcripts), accessibility
  as ranking signal, image/video sitemaps.
- agents/geo-analyzer.md: new agent for AI engines (ChatGPT, Claude,
  Perplexity, Gemini, Google AI Overviews, Copilot). Covers AI crawler
  policy, llms.txt/llms-full.txt, Schema.org for AI extraction (QAPage,
  Speakable, Person+Article, Organization graph), entity SEO (Wikidata,
  sameAs, Knowledge Panel), content shape (Definition Lead, TL;DR,
  Q->A, citable stats, freshness), AI visibility testing.
- agents/resources/: shared knowledge base referenced by both agents —
  ai-crawlers-2026.md (25+ bots, training vs retrieval categories,
  permissive/restrictive templates), llms-txt-template.md, geo-schemas.md
  (incl. deprecated list: ClaimReview, CourseInfo, etc. removed June 2025),
  entity-seo.md, content-shape-for-ai.md, ai-visibility-tools.md,
  automation-catalog.md.
- skills/seo/SKILL.md: becomes parallel dispatcher. Collects context
  once (depth + business), spawns both agents in a single message for
  concurrent execution, merges envelopes into unified SEO.md. Includes
  authoritative file-ownership matrix to prevent parallel-edit races.
- skills/geo/SKILL.md: new standalone wrapper for GEO-only audits.

Scoring
- Combined score: GLOBAL = 0.80 * SEO + 0.20 * GEO (local B2C),
  0.75 * SEO + 0.25 * GEO (SaaS/national/content).
- GEO axis weight raised from 5% (old) to first-class dimension.

Policy
- AI crawlers: permissive default (maximise AI citations). Restrictive
  template available for premium/regulated content.
- Every user action in SEO.md section 11 must cite automation options
  from automation-catalog.md.

Tools
- WebFetch + WebSearch added to allowed-tools of both skills and
  both agents (needed for live CWV via PageSpeed API, AI visibility
  testing, Wikidata/Knowledge Panel lookups, competitor analysis).

Research basis (2026 state of the art validated via WebSearch):
- Core Web Vitals 2.0 (VSI signal, Google core update March 2026)
- AI Overviews trigger on ~48% of Google searches
- ClaimReview + 6 other schema types deprecated June 2025
- Definition Lead Architecture (CMU KDD 2024, +impression score)
- Citations + stats add up to 40% AI visibility (Aggarwal 2024)
- Wikidata grounds every major LLM (ChatGPT, Claude, Gemini, Perplexity)

Backup
- agents/seo-analyzer.md.bak kept for rollback reference.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 16:16:30 +02:00
bastien
53d04db480 feat(install): gstack disabled by default — opt-in via toggle-external
gstack ships ~40 skills that all load into Claude's context. Keeping
them active by default taxes every session, even when the project has
no browser-QA or deploy workflow. install-plugins.sh now calls
`toggle-external.sh disable gstack` right after gstack's ./setup, so
fresh installs land with gstack symlinks staged in skills-disabled/.

update-all.sh captures the current enabled/disabled state before the
submodule bump and restores it afterwards — otherwise ./setup would
silently re-enable a user who had explicitly disabled gstack.

To use gstack: `bash lib/toggle-external.sh enable gstack`.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-21 15:30:52 +02:00
bastien
e144dc78ee added some info into claude.md and settings 2026-04-21 15:22:05 +02:00
bastien
6ade88f38d chore(gitignore): ignore new gstack skills from v0.17.0 submodule bump
gstack 0.17.0 added 5 skills that land in skills/ via gstack ./setup
(benchmark-models, context-restore, context-save, make-pdf, plan-tune).
The older gstack skills are already ignored here — extend the list so
these don't show up as untracked after `make update`.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-21 15:18:43 +02:00
bastien
ec14261c82 feat(toggle): enable/disable non-marketplace tools via lib/toggle-external.sh
`claude plugin enable|disable` only toggles marketplace plugins.
Tools living as symlinks (gstack per-skill entries, emil-design-eng,
darwin-skill, find-skills) had no lever — users had to edit symlinks
by hand. The new script moves symlinks in/out of skills-disabled/
so Claude Code stops or starts scanning them.

Also removes the legacy global `skills/gstack` symlink that shadowed
per-skill entries with a duplicate top-level "gstack" skill (same
description as "browse"). gstack detection in detect-plugins.sh now
probes an individual skill instead.

plugin-advisor reads the new script's `list` command when gathering
state and emits its `enable|disable` commands in recommendations.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-21 13:50:40 +02:00
bastien
85637d83ec fix(update): pass full name@marketplace to claude plugin update
`claude plugin update` rejects a bare plugin name when multiple
marketplaces are registered — the CLI demands `name@marketplace`.
update-all.sh stripped the suffix via `${_p%%@*}`, causing every
marketplace plugin update to fail with "Plugin not found". Fixed
by passing the unmodified spec from `claude plugin list`.

Also adds install + update paths for external skills distributed
through the `npx skills` CLI (vercel-labs/skills):
  - alchaincyf/darwin-skill
  - alchaincyf/find-skills

These land in ~/.agents/skills/ and are now symlinked into
$REPO/skills/ via link.sh using absolute paths — the previous
relative `../../.agents/...` targets resolved incorrectly when
the repo is cloned below $HOME (as ~/Documents/claude/), leaving
dangling symlinks.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-21 13:47:51 +02:00
bastien
9536527a37 chore(plugins): unpin rtk to latest
Move rtk from v0.34.3 to "latest" to pick up upstream fixes as they
ship (notably the pending TTY-passthrough issue documented in
tasks/rtk-upstream-issue.md).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-17 05:16:40 +02:00
bastien
d82b21777f docs(tasks): write up rtk curl TTY-passthrough upstream issue
Document that `rtk curl` (and siblings `cat`, `read`, `json`, etc.)
emits the compressed/schema representation even when stdout is piped,
silently breaking any downstream parser (jq, python json.load, awk).
Proposes an isatty(stdout) check to passthrough raw bytes when not
a TTY, matching the Unix convention used by ls/grep/diff.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-17 05:16:36 +02:00
bastien
dc9f037490 refactor(seo-analyzer): full rewrite — dual-depth audit, sub-agent orchestration, legal/GEO/competitive analysis
Complete rewrite of the SEO/GEO audit agent (317 → 868 lines):

- Two audit depths: LOCAL (code-only, 4 scored axes) and FULL (live site +
  external presence + competitors, 8 scored axes). Same rigor, user chooses.
- Plugin-advisor invoked at STEP 3 (after stack detection), not upfront.
  Only triggered for FULL depth. Offers downgrade to LOCAL if tools missing.
- Sub-agent orchestration: findings triaged into 6 batches (A-F), delegated
  to hotfixer (1-2 file fixes), feater (multi-file features), or direct Bash
  (image pipeline). No more raw edits from the orchestrator.
- New audit scopes: live HTTP audit, external presence (GMB, social, citations,
  NAP consistency), competitive analysis, legal compliance FR (LCEN, RGPD,
  DGCCRF), GEO/AI readiness (FAQPage, E-E-A-T, AI engine visibility).
- Scored report (/20 per axis, weighted by business type) with prioritized
  action plan (quick wins / medium / long term).
- SEO.md versioned document (15 sections, iterative updates, audit history).
- Landing page protection rule, confirmation gates for structural changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 16:03:34 +02:00
bastien
57309b80f8 feat(agents): add design gate for automatic ui-ux-pro-max detection
Lightweight skills (feat, hotfix, bugfix) had zero plugin awareness —
design tasks ran without ui-ux-pro-max even when relevant. Add a
design gate (lib/design-gate.md) that auto-detects UI/style signals
in task description and filesystem, then asks the user to activate
ui-ux-pro-max if inactive. Orchestrators already handle this via
their STEP 0 plugin-check.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-16 01:50:56 +02:00
bastien
0f28829bdb feat(claude-md): add health stack + enrich skill routing with full arsenal
Health Stack persists shellcheck config for /health.
Skill routing now covers all skills (gstack + perso) with fallbacks
when gstack is unavailable (bugfix, ship-feature, doc).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-16 01:08:36 +02:00
bastien
d12d490924 chore: update gstack submodule to v0.17.0
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-16 01:08:28 +02:00
bastien
71955ea7b3 fix(shell): resolve all shellcheck warnings across scripts
- SC2088: replace ~ with $HOME in quoted strings (doctor.sh)
- SC2010/SC2012: replace ls|grep with compgen -G globs (detect-plugins.sh)
- SC2034: remove unused PKG and RED variables (install-plugins.sh, update-all.sh)
- SC2015: convert A&&B||C to proper if/then/else (update-all.sh, install-plugins.sh, session-start.sh)
- SC1090: add shellcheck source directive (statusline.sh)
- SC2129: group redirects into single block (install-plugins.sh)

0 warnings remaining (3 SC1091 info-level expected).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-16 01:08:23 +02:00
bastien
40db25b590 chore: add gstack skill routing rules to CLAUDE.md 2026-04-16 00:37:37 +02:00
bastien
82040a5136 docs(readme): add Context7 account setup and link
Context7 requires a free account + API key — added install step
and linked to context7.com in the components table.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-16 00:28:34 +02:00
bastien
e48c8347aa docs(readme): streamline README — cut from ~700 to ~150 lines
Remove verbose sections (compatibility matrix, self-management, passive
cost model, marketplaces, detailed examples, versioning). Replace with:
single installed-components table with doc links, 3 core workflows
(from scratch / existing project / new feature), compact settings and
diagnostic sections. Add graphify to architecture description.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-16 00:20:13 +02:00
bastien
50db70cbf2 chore: remove ruflo and frontend-design — full cleanup
Both plugins removed from all config, scripts, and documentation:
- ruflo: uninstalled globally (npm), removed from install/update/doctor/session-start/detect/lock/advisor
- frontend-design: removed from install/session-start/detect/advisor (was already commented out)
- plugin-advisor.md: compatibility matrix, decision table, conditional rules, recommended sets all updated
- README.md/USAGE.md: all references cleaned, token cost estimates recalculated
- install-plugins.sh: steps renumbered (10→9 steps)
- CHANGELOG.md: kept as historical record

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 23:54:52 +02:00
bastien
a9f5e9a31b refactor(commit-changer): group by development narrative, not by type
Replace atomic-by-type grouping (docs together, feat together, chore
together) with development-step reconstruction. Commits now retrace
the order work happened — one commit per logical step, regardless of
file type. Count adapts to the workload: 1 commit or 20.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 23:40:24 +02:00
bastien
3f69326c9a chore: switch CLAUDE_EFFORT env var to --effort alias, add task tracking
install-plugins.sh: replace 'export CLAUDE_EFFORT=max' with
'alias claude="claude --effort max"' (cleaner, uses CLI flag).
Cleans up old env var from shell profile on re-run.

Also adds tasks/ tracking files and fixes trailing whitespace in CLAUDE.md.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 23:21:57 +02:00
bastien
0bbb13f1f2 feat(doc-syncer): add feature delta detection — track added/removed features
Doc syncer now detects features present in code but missing from docs
(ADDED) and features documented but removed from code (REMOVED). Both
full audit and auto mode updated. Tags follow AUTO/HUMAN rules: list
entries are AUTO, new sections and deprecation notes are HUMAN.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 23:21:45 +02:00
bastien
b38efe10bd docs(readme,usage): streamline documentation — remove bloat, add self-management section
README: remove MCP mention from ctx7, mark ruflo as disabled, delete
Troubleshooting/Known limitations sections, replace third-party stack
install instructions with short descriptions + links, add Personal skills
and Intelligent self-management sections (plugin-advisor, token budget,
synergies table, passive/active cost model), simplify Updating section.

USAGE: remove all version-specific bug fix case studies (v2.2.0–v3.1.0),
remove error diagnostics table, fix /readme→/doc reference, clean orphaned
separators. All 9 examples and practical sections preserved.

Net: -1247 lines.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 23:21:36 +02:00
bastien
104799ace9 chore(release): update docs and changelog for v3.4.0
Bump version to 3.4.0. Changelog covers 9 new skills, 7 new agents,
install.sh bootstrap, hooks, and plugins.lock additions. README and
USAGE updated with new skill table, decision tree, and patterns.
TODO items marked done.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 22:35:58 +02:00
bastien
82f546914d fix(skills-perso): handle both inline and block YAML description formats
The awk extraction now correctly parses both `description: text` (inline)
and `description: |` (block scalar) YAML formats.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 21:17:26 +02:00
bastien
a7f4a25cc3 fix(skills-perso): detect personal skills via agent reference
Personal skills are identified by checking if their SKILL.md references
an agent file from ~/.claude/agents/. Adds agent column to output table.
Replaces unreliable git history heuristic.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 20:41:22 +02:00
bastien
2d53b8f70c fix(skills-perso): exclude framework/gstack skills from listing
Use git history heuristic: skills added in bulk commits (5+ SKILL.md
files at once) are framework installs, not user-created. Only show
skills added in small commits (1-3 files).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 20:32:35 +02:00
bastien
d9eebd27c0 feat(skills): add skills-perso skill to list personal skills
Lists all local skills from ~/.claude/skills/ with name and description,
excluding symlinked/external ones (gstack, emil-design-eng).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 20:28:37 +02:00
bastien
f7c5da0b9b feat(installer): add shell env vars setup step
New Step 10 writes CLAUDE_EFFORT=max and
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 to the user's shell
profile (~/.bashrc, ~/.zshrc, or ~/.profile). Skips if already
present.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 20:18:41 +02:00
bastien
eb020d88a7 docs(claude): rewrite graphify context navigation guidelines
Clarify when to use graphify (large-scope tasks only) vs reading
files directly (small tasks). Removes the "always query graph first"
rule that added unnecessary overhead for simple lookups.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 20:18:40 +02:00
bastien
0241e1ddc8 refactor(skills): extract skill logic into standalone agent files
Skills now delegate to agent .md files instead of embedding logic
inline. Added new agents (bugfixer, code-cleaner, commit-changer,
doc-syncer, feater, hotfixer, seo-analyzer) and new skills
(code-clean, doc, seo). Replaced /readme with /doc (broader scope).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-15 20:18:34 +02:00
bastien
9d73d31cde added onboard and claude improve 2026-04-15 18:23:55 +02:00
bastien
46f9fc93d3 added security claude md 2026-04-15 17:37:03 +02:00
bastien
67e66b7217 added api versions 2026-04-14 03:08:33 +02:00
bastien
7318c18730 added no SPA for public website in claude.md 2026-04-14 01:15:41 +02:00
bastien
1f65a365f4 Added honesty and clarity in claude.md for no bullshit yesman response 2026-04-13 16:06:34 +02:00
bastien
ed81d13d76 feat(skills): add /hotfix, /bugfix, and /feat lightweight skills
Fill the gap between direct editing and the full /ship-feature
orchestrator. Three new skills for common everyday tasks:
- /hotfix: superficial bugs (typo, CSS, config), 1-2 files, no plan
- /bugfix: deeper bugs with root cause investigation + fix plan
- /feat: small features 1-5 files, light planning, no subagents

Each skill documents its escalation path to the next level.
Updated plugin-advisor with skill routing table and references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:32:55 +02:00
bastien
e0e466c857 chore(commit-change): remove confirmation step
Skip the plan-and-confirm phase — commit directly after analysis.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-13 15:14:38 +02:00
bastien
cd38324cf7 chore: reorder settings.json keys
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-13 15:12:37 +02:00
bastien
c99141f0a8 chore: rename git-smart-commit skill to commit-change
Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-13 15:12:25 +02:00
bastien
ec3c18e5a1 update gstack submodule to c6e6a21
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:01:26 +02:00
bastien
13be88f92d add .graphifyignore to exclude gstack submodule and install logs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:01:25 +02:00
bastien
015c8c8152 fix skill-creator install: use anthropics/skills marketplace
skill-creator is bundled in the "example-skills" plugin from
anthropics/skills repo, not in anthropics/claude-code marketplace.
Adds anthropic-agent-skills marketplace and installs example-skills.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 15:01:24 +02:00
bastien
74a0901cc4 add emil-design-eng skill to install/update pipeline
- Download SKILL.md from emilkowalski/skill to skills-external/
- Symlink to ~/.claude/skills/ via link.sh
- install-plugins.sh step 9: curl download + symlink check
- update-all.sh step 8: re-fetch latest SKILL.md on update
- plugins.lock.json: add emil-design-eng entry
- .gitignore: ignore auto-created symlink in skills/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 14:31:24 +02:00
bastien
7123bf5e5d track install.sh bootstrap script
Previously untracked. Called by make install for first-time setup:
installs Claude Code CLI, authenticates, inits submodules, symlinks,
and runs plugin installer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 14:08:48 +02:00
bastien
42e72b135b update-all.sh: add Claude CLI update, ctx7, graphifyy, marketplace plugins
- Step 0: update Claude Code CLI via npm before anything else
- Source lib/detect-plugins.sh to fix detect_ruflo crash
- Show cargo compilation logs instead of redirecting to /dev/null
- Add missing update steps for ctx7, graphifyy, marketplace plugins
- Aligns update-all.sh with everything install-plugins.sh installs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 14:08:43 +02:00
bastien
0c164cc9fe refactor Makefile: install→bootstrap, add plugin target
make install now calls install.sh (full bootstrap).
make plugin calls install-plugins.sh (plugins only).
Removes redundant bootstrap target.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 14:08:36 +02:00
bastien
89f777ce31 add skill-creator plugin to install pipeline
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 13:43:41 +02:00
bastien
759c67339b untrack gstack skill symlinks — auto-created by install-plugins.sh
These 37 symlinks point to skills-external/gstack/ and are recreated
automatically by the gstack setup during install-plugins.sh. They
should not be versioned. Added all patterns to .gitignore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 15:02:43 +02:00
bastien
66beae16b7 auto-detect plan, complexity scoring, ctx7 cache, graphify in workflows
- detect_plan() auto-detects Max/Pro/Free from ~/.claude.json
- session-start budget adapts to plan (Max=20k, Pro=11k, Free=5k)
- token counting now uses only ACTIVE plugins, not installed binaries
- statusline shows plan label + session duration instead of start time
- plugin-advisor: complexity assessment (0-100%) drives tool selection
- plugin-advisor: auto-activation with confirmation (PHASE 4)
- ruflo OFF by default, GSD v2 preferred for multi-session
- init-project: ctx7 pre-fetch + graphify scaffold + graphify full
- ship-feature: ctx7 cache check before implementation
- frontend-design disabled in installer (doublon with ui-ux-pro-max)
- python3 -c moved from deny to ask (unblocks graphify)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 14:56:22 +02:00
bastien
0dac12b885 add gstack skill symlinks, graphify skill, and gitignore updates
Track all gstack-provided skill symlinks (autoplan, browse, qa, etc.)
and the graphify skill. Add .claude/, graphify-out/, .ctx7-cache/ to
gitignore to exclude local/generated files from the repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 14:56:03 +02:00