Install and configure the Big Emotion project standard on a new or existing repo — CI quality gates, Husky hooks, the four project skills, Atlassian wiring (Jira board + Confluence spec tree), Ferry, and the infrastructure module (OVH VPS deploy, Azure variant, M365 mail, secrets doctrine). Use when starting a new Big Emotion project, bringing an existing repo up to standard, checking a repo's compliance, or setting up deploy/mail/secrets ("setup this project", "install the standard", "gap an...
Scanned 9/6/2026
Install to Claude Code
npx -y skills add big-emotion/agent-atelier --skill setup --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Setup?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/big-emotion-setup)More formats (shields.io, HTML) on the badges page.
---
name: setup
description: Install and configure the Big Emotion project standard on a new or existing repo — CI quality gates, Husky hooks, the four project skills, Atlassian wiring (Jira board + Confluence spec tree), Ferry, and the infrastructure module (OVH VPS deploy, Azure variant, M365 mail, secrets doctrine). Use when starting a new Big Emotion project, bringing an existing repo up to standard, checking a repo's compliance, or setting up deploy/mail/secrets ("setup this project", "install the standard", "gap analysis", "is this repo up to standard", "deploy this on the VPS").
metadata:
author: Big Emotion
version: 0.1.0
---
# Big Emotion Project Setup
Every Big Emotion project ships the same toolset. This skill installs it, module by module, on any repo — or audits an existing repo against it. The full rationale lives in SPEC.md at the root of the agent-atelier repository.
| Module | What | Reference |
|---|---|---|
| M1 | CI quality gates (gitleaks, lint, typecheck, format, test, build) | `references/m1-ci.md` |
| M2 | Husky hooks (pre-commit → lint-staged, commit-msg → commitlint) | `references/m2-hooks.md` |
| M3 | Project skills `<slug>-{release,audit,spec,ticket,bootstrap-confluence}` | `references/m3-skills.md` |
| M4 | Atlassian wiring (Jira board, Confluence spec tree, config) | `references/m4-atlassian.md` |
| M5 | Ferry (router model, claude-code path) | `references/m5-ferry.md` |
| M6 | Branch & release model (develop/main, tag `v*` → deploy) | `references/m6-branch-release.md` |
| M7 | Infrastructure & secrets (OVH VPS + Traefik, Azure variant, M365 mail, secrets doctrine) | `references/m7-infra.md` |
Reference paths above are relative to `${CLAUDE_PLUGIN_ROOT}/skills/setup/`. Templates live in `${CLAUDE_PLUGIN_ROOT}/skills/setup/templates/`; the placeholder registry is `templates/params.json`.
## Operating rules
- **Never write before the plan is confirmed.** Steps 1–3 are read-only; a single explicit confirmation covers the whole install plan.
- **Idempotent.** On a compliant repo, report "compliant" and change nothing. Never overwrite a project's existing customization of a module without flagging it as drift and asking.
- **Modules are independent.** Install only what the user selected; missing prerequisites between modules (M5 needs M4's board; M3's spec skill needs M4's config) are declared in the plan, not silently added.
- **Everything written is in English** (code, comments, docs). User-facing trigger phrases inside skills may stay French.
- **Adapt, don't force.** Templates ship in pnpm/TypeScript form; adapt commands to the interview answers (package manager, toolchain layout, no-TS repos) per each module's reference doc.
- **Secret names, never values.** The skill documents where every secret lives, what it is called, and how to obtain it — it never writes, echoes, or stores a secret value (not in rendered files, not in conversation output, not in this plugin). Values are entered by a human directly at their destination (GitHub secret, VPS `.env`, provider portal). **This plugin is public and ships no infrastructure coordinates** — no hostnames, IPs, SSH ports, account handles or resource names. Collect them from the user at interview time and never write them back into the plugin.
## Step 1 — Interview
Read `templates/params.json` — it is the authoritative parameter list. Collect only what the selected modules need; propose defaults detected from the repo (package.json name → `project_slug`, `git remote` → org/repo, existing branches → branch model). For Atlassian ids, prefer discovery via Atlassian MCP over asking (see `references/m4-atlassian.md`).
Ask which modules to install when the user hasn't said; default to all seven for a new project. M7's coordinates (VPS host, SSH port and user, app hostname, deploy path, mail sender) ship with no defaults by design — ask for them, or let the user point you at their own private ops notes outside this repo.
## Step 2 — Gap analysis (read-only)
For each selected module, classify **missing / present / drifted** with evidence:
- **M1**: `.github/workflows/ci.yml` exists? Contains the core gates (secret scan, lint, typecheck, format, test, build)? Partial = drifted, list absent gates.
- **M2**: `.husky/` with pre-commit + commit-msg? `commitlint.config.*`, `lint-staged.config.*`, `prepare: husky` script?
- **M3**: `.claude/skills/<slug>-{release,audit,spec,ticket,bootstrap-confluence}/`? Also check `~/.claude/skills/` for name collisions — personal skills shadow project skills (warn, recommend deleting stale personal copies).
- **M4**: `docs/confluence-spec/config.json` complete? `docs/.confluence-bootstrap-complete` sentinel? `docs/templates/jira-ticket-template.md`? Jira board reachable via MCP with the five pipeline columns?
- **M5**: `ferry.config.json|yaml` + `.github/workflows/ferry-router.yml` (router model — five per-role `ferry-*.yml` workflows = drifted: legacy model, flag for migration but do not auto-migrate) + `ferry-reconcile.yml` + `ferry-cost-daily.yml`? Secrets/vars present (`gh secret list`, `gh variable list`)?
- **M6**: integration branch exists, default branch protected, `deploy-production.yml` triggered on tag `v*`?
- **M7**: deploy artifacts present (`Dockerfile`, `deploy/docker-compose.yml`, `deploy/env.template` — or Azure deploy workflows)? GitHub `production` environment with the `DEPLOY_*` variables + `DEPLOY_SSH_KEY` secret (`gh api repos/{owner}/{repo}/environments`)? Transactional mail wired per the M365 pattern where the app sends email?
Output one table: module · status · evidence · what install would do.
## Step 3 — Plan + confirmation
Per-module install plan (files to write, wizards to run, manual steps the user must do in Jira/Confluence UIs, settings to change via `gh`). State what will NOT be touched. Wait for one explicit go.
## Step 4 — Install
Work module by module in order M6 → M1 → M2 → M4 → M3 → M5 → M7 (branch model first — CI triggers reference branches; Ferry needs board, branches, and CI; infra last — its deploy workflow slots into M6's release flow). For each module follow its reference doc; render templates by replacing `{{param}}` tokens with interview values; `# PROJECT-SPECIFIC:` / `<!-- PROJECT-SPECIFIC: -->` markers in templates show where the project adds its own content — surface them to the user, never delete silently.
Manual Atlassian/GitHub-settings steps: guide the user through them interactively and verify each via MCP or `gh` before moving on.
## Step 5 — Verify
- M2: make a scratch commit exercising the hooks (then reset) — both hooks must fire; a bad message must be rejected.
- M1: push a branch or open a draft PR to see the gates run, or `gh workflow run` where applicable.
- M3: each installed skill's preconditions pass (dry read-only run).
- M4: MCP reads of config ids succeed; sentinel present after bootstrap.
- M5: `npx -p @big-emotion/ferry ferry-doctor`; then a smoke Story through Refinement.
- Output a final checklist: done / remaining-manual / deferred.
## Failure modes
- **Repo already has a conflicting tool** (e.g. lefthook, commitizen): stop, present the conflict, never replace without an explicit decision.
- **Legacy Ferry (five per-role workflows) detected**: report as drift with a migration pointer (`references/m5-ferry.md`); migration is its own task, not part of install.
- **Atlassian MCP unavailable**: M4/M3-spec install degrades to fully manual guidance; say so up front.
- **User lacks org/repo admin rights** (secrets, branch protection): emit the exact `gh` commands + settings paths for someone who has them, and mark those steps remaining.
## Out of scope
Auto-creating Jira projects/boards (guided manual steps only) · migrating legacy-Ferry repos · website-specific gates (design tokens, Figma parity, Prismic checks — see the optional-extensions catalog in `references/m1-ci.md`) · anything requiring credentials the user hasn't provided.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!