Skip to content

feat: /atom-new — bootstrap a project from inside Claude (v0.3 #23)#2

Merged
machbuilds merged 5 commits into
mainfrom
atom-instructions-as-claude-skill
Jun 4, 2026
Merged

feat: /atom-new — bootstrap a project from inside Claude (v0.3 #23)#2
machbuilds merged 5 commits into
mainfrom
atom-instructions-as-claude-skill

Conversation

@machbuilds

Copy link
Copy Markdown
Owner

What

A global Claude Code skill, /atom-new, that drives atom's Mode 1 bootstrap conversationally from any directory or session — no cd ~/.atom/atom, no terminal round-trip. Removes the friction of having to return to the terminal (or be inside the atom repo) every time you want to start a project.

Type /atom-new in any Claude session → Claude walks you through project context → scaffold → constitution → first phase, the same flow atom-setup runs in the terminal, just guided.

Design (decisions locked with the user)

  • Thin launcher, not a fork. The skill locates the installed atom ($ATOM_SOURCE_DIR$ATOM_INSTALL~/.atom/atom/) and reads AGENTS.md Mode 1 + its docs at invoke time. It deliberately does not restate the bootstrap steps, so it can't drift from the single source of truth.
  • Conversational, not a wizard shell-out — the terminal wizard (atom-setup new) already serves the fast, no-questions path.
  • Mode 1 only. Modes 2 (maintain atom) and 3 (build atom features) are dev-facing and stay out of a global skill.
  • Distribution piggybacks existing machinery. New top-level skills/ dir (global user skills, distinct from scaffold/.claude/skills/ which ship into projects). install.sh and atom upgrade symlink each into ~/.claude/skills/ — a symlink into the git checkout, so atom upgrade's git pull refreshes content for free. No new channel; consistent with git-not-npm.

Safety / robustness

  • Idempotent: re-runs repoint stale symlinks.
  • Never clobbers a real (non-symlink) file/dir the user owns at the target name — leaves it and reports the skip.
  • Best-effort in both paths: a link failure never fails the install or upgrade.
  • /atom-new fails gracefully with the install.sh one-liner when no atom checkout is found.

Tests

scripts/test-atom-setup.sh Test 21 (+14 assertions, 164 → 178, 0 failed): structural checks on the skill + both install paths, plus a hermetic functional pass of linkGlobalSkills across fresh-link / idempotent-repoint / user-owned-dir-skip using a scratch HOME (the runner's real ~/.claude is never touched). Added a bin/atom dependency pre-flight.

Not in this PR (release decision left to you)

No VERSION bump and no [Unreleased] → versioned section — atom's releases are deliberate, and v0.3 isn't scope-locked yet. The feature is logged under [Unreleased] and #23 is marked built in docs/planning/v0.3.md. Merging + bumping VERSION is the step that makes atom upgrade deliver it to users — your call when to take it.

🤖 Generated with Claude Code

machbuilds and others added 5 commits June 5, 2026 00:17
Conversational Mode-1 bootstrap as a global Claude skill (thin launcher
over installed AGENTS.md, not a fork). Scoped to Mode 1 only; Modes 2/3
are dev-facing. Distribution piggybacks existing global-symlink + atom
upgrade machinery.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Global Claude Code skill that drives the AGENTS.md Mode 1 bootstrap
conversationally from any directory — no terminal round-trip. Thin
launcher over the installed AGENTS.md (reads it at invoke time, never
restates the steps), so it can't drift from the source of truth.

New top-level skills/ dir holds global user-facing skills (distinct from
scaffold/.claude/skills/ which ship into bootstrapped projects).
install.sh and atom upgrade symlink each into ~/.claude/skills/; the
symlink-into-git-checkout means atom upgrade's git pull refreshes skill
content for free. Idempotent (repoints stale links), safe (never
clobbers a user-owned dir, reports the skip).

Scope: Mode 1 only. Modes 2/3 are dev-facing and stay out.

Tests: Test 21 (+14 assertions, 164 -> 178) — structural checks on both
install paths plus a hermetic functional pass of linkGlobalSkills across
fresh/repoint/skip using a scratch HOME. Added bin/atom dep pre-flight.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Both pre-existing, environment-specific, failing on Ubuntu CI but
passing on macOS — unrelated to /atom-new.

14.15: picocolors auto-enables ANSI when $CI is set (GitHub Actions),
so `<bold>name</bold> is ready` gained escape codes that split the
asserted substring. Pin NO_COLOR=1 in the harness — plain text
everywhere, children inherit it.

20.7: the pattern double-quoted its backticks, yielding `\`` which
GNU grep treats as a buffer-start anchor (never matches mid-pattern);
BSD grep took it literally, hiding the bug locally. Single-quote the
pattern so backticks are literal. Verified against GNU grep 3.12: old
pattern no-match, new pattern match.

Suite: 178/178 under CI=1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Opens the v0.3 line with the first candidate shipped ahead of
scope-lock. Root VERSION 0.2.1 -> 0.3.0 (the target atom upgrade polls);
the five CLIs align to 0.3.0; atom-update-check stays 0.1.0. CHANGELOG
[Unreleased] graduated to [0.3.0].

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The 1.2 assertion hardcoded 0.2.1, so the 0.3.0 bump broke it. Read the
repo VERSION instead — release bumps no longer trip this test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@machbuilds machbuilds merged commit a002df2 into main Jun 4, 2026
6 checks passed
@machbuilds machbuilds deleted the atom-instructions-as-claude-skill branch June 4, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant