Skip to content

dtdesigner36/jarvis-starter

Repository files navigation

JARVIS-Starter

License: MIT Claude Code Skill GitHub release GitHub stars

A persistent project assistant for Claude Code. Bootstraps new projects, softly adopts existing ones, and stays as a quiet helper — maintaining the wiki, recommending the right model per task, surfacing past decisions, and tracking how the project evolves.

Built for vibe-coders first: people who describe ideas in plain language and want the right defaults picked for them. Works for technically literate users too — every decision is optional, and you can switch off anything that gets in the way.


60-second tour

# 1. Install the skill in your project
npx skills add dtdesigner36/jarvis-starter --yes
# 2a. New project? Start fresh:
> jarvis start: Telegram bot for reminders with a Next.js admin panel

# 2b. Existing project? Adopt without breaking anything:
> jarvis adopt
# 3. That's it. JARVIS lives in .jarvis/ and runs via hooks.
#    Need something? Ask it:
> jarvis status
> jarvis route "refactor the auth module"
> jarvis find "pdf parser"
> jarvis audit

Why this exists

Starting a Claude Code project means re-inventing the same scaffolding every time: CLAUDE.md rules, hooks, wiki, which skills to install, which model to pick for which task. And once the project grows, keeping docs and decisions in sync with the code is a losing battle.

JARVIS solves both:

  • On start — sets up architecture for the project type (Telegram bot, web app, API, landing, game, parser, mobile, library, CLI, LLM-agent, and more) using archetype-specific overlays.
  • On adopt — for existing projects, runs a gap analysis and installs only the features you're missing. Adds a single marker line to CLAUDE.md; never overwrites your existing rules. Doesn't replace your hooks — wraps legacy hook names with a sentinel-guarded block or installs new jarvis-*.sh files alongside. Everything new lives in .jarvis/ or in separate jarvis-*.sh hook files.
  • Ongoing — passive hooks maintain the wiki, recommend the right model (Opus / Sonnet / Haiku) and plan-mode for each task, resurface already-solved problems, and track project evolution. 0 tokens until a hook fires — each core hook runs once per tool-use or user turn, then returns silently when there's nothing to say.

Two modes of installation

New project — jarvis start

> jarvis start: <description of what you want to build>

JARVIS walks you through:

  1. Requirements clarification
  2. Stack selection
  3. Relevant skill picks from the curated registry, ranked by archetype + stack overlap (GitHub-query discovery is model-guided — the install step is yours)
  4. Infrastructure rollout (CLAUDE.md, hooks, wiki/)
  5. Initial optimization advice

Existing project — jarvis adopt

> jarvis adopt

Soft integration via gap analysis. JARVIS:

  • Reads your project (stack, CLAUDE.md, hooks, docs, secret-scanners, issue tracking)
  • Detects what you already have (living docs, husky pre-commit, linear integration, etc.)
  • Shows a gap matrix — proposes only the features you're missing
  • Installs those features in .jarvis/ namespace + new jarvis-*.sh hook files
  • Adds one marker line to your CLAUDE.md (<!-- jarvis-starter-adopt: see .jarvis/state.md -->); your own rules are never rewritten
  • Leaves your existing hooks and docs in place — pre-existing legacy hook files are wrapped in a sentinel-guarded block you can undo with safe-uninstall.sh, and docs/ is never overwritten

If you run jarvis start in an existing project, JARVIS detects the dev-stage (git history, mature lockfile, existing CLAUDE.md, living docs, CI) and auto-switches to Adopt. Force full bootstrap with jarvis start --force if you really mean it.


Commands (after install)

JARVIS commands come in two flavours. The executable ones run shell scripts directly. The model-prompted ones are markdown instruction files that Claude reads on demand — they guide Claude through a workflow, they are not standalone programs.

Executable shell commands:

Command What it does
jarvis self-audit Inventories which JARVIS hooks actually fired, usage counts, stale wiki, real shell output
jarvis adopt Soft-integrate into an existing project (gap analysis, no overwrite)

Model-prompted workflows (markdown Claude reads when invoked):

Command What it does
jarvis or jarvis status Brief project summary (Claude reads .jarvis/state.md + focus.md)
jarvis route "<task>" Model / plan-mode recommendation for a task
jarvis find "<need>" Claude searches the curated registry + suggests a GitHub query (no install)
jarvis evolve <layer> Claude applies an archetype overlay
jarvis decide "<q>" Help with an architectural decision
jarvis suggest Quality improvement suggestions
jarvis docs Check wiki freshness
jarvis audit Comprehensive project audit
jarvis security Security audit
jarvis remember "<fact>" Record a decision in project memory
jarvis history Timeline of project events

Plugins (off by default)

school-mode — for those who want to learn, not just build

> jarvis school on

Creates a school-wiki/ with a topic index for your stack. Each topic is a short stub — what it is, where it lives in this project. When you want to go deep:

> jarvis school topic prisma-migrations

JARVIS: Let's walk through migrations. In your project:
  - 3 migrations (latest one 5 days ago)
  - Schema has X models

  What do you already know about migrations in general? Have you ever
  dropped a column from an existing table?
  ...

Turn off with jarvis school off. JARVIS never proactively suggests school-mode — it's your call.


Architecture

jarvis-starter/
├── SKILL.md                  # Entry point
├── README.md                 # This file
├── NOTICE.md                 # Attributions
│
├── core/                     # Always-on hooks (0 tokens until a hook fires)
│   ├── wiki-maintenance/     # Watches code → proposes wiki updates
│   ├── task-routing/         # Classifies prompts → recommends model
│   ├── memory-recall/        # Surfaces already-resolved topics
│   ├── focus-tracker/        # Passively tracks current focus
│   └── security-watch/       # Detects hardcoded secrets and .env leaks
│
├── on-demand/                # Markdown instructions Claude reads on demand
│   ├── skill-discovery/      # jarvis find — registry match + GitHub query hints
│   ├── security/             # jarvis security — audit workflow
│   ├── evolve.md             # jarvis evolve
│   ├── decide.md             # jarvis decide
│   ├── suggest.md            # jarvis suggest
│   ├── docs.md               # jarvis docs
│   ├── audit.md              # jarvis audit
│   └── self-audit/           # jarvis self-audit — real shell script (scripts + report.sh)
│
├── plugins/                  # Optional extensions (off by default)
│   └── school-mode/
│
└── archive/                  # Rarely needed after bootstrap
    ├── bootstrap/            # Phase 0-6 bootstrap + brownfield-adopt
    ├── archetypes/           # Tier 1 (10 full) + Tier 2 (19 descriptions)
    ├── templates/            # Universal + archetype overlays
    └── subcommands-rare/     # remember, forget, history, focus, optimize

Philosophy

  1. Quality > optimization — but both matter
  2. Quiet butler — silent until called
  3. Plain language — for vibe-coders
  4. Wiki as first-class — always current, via hooks
  5. Respect what's already there — brownfield-safe by default (Adopt mode)
  6. Extensible — plugins for different work modes

Roadmap & changelog

Contributing

Issues, feature suggestions, and PRs welcome. See CONTRIBUTING.md for how to file a good bug report or propose a feature. Discussion happens in GitHub Discussions.

If you've built a related Claude Code skill, open an issue — happy to add it to the known-skills registry referenced by jarvis find.


🙏 Credits & Acknowledgments

JARVIS-Starter stands on the shoulders of others:

  • @alinaqi — orchestration patterns, Stop Hooks approach, and persistent memory concepts in claude-bootstrap
  • @pbakaus — Context Gathering Protocol, .impeccable.md persistence pattern, design philosophy, and design-skill templates. The foundation for JARVIS's "context first" approach
  • Emil Kowalski — UI polish philosophy and the "invisible details" design engineering mindset
  • @leonxlnx — agency-level design direction and the visual taste framework
  • Anthropic — skill-creator patterns (progressive disclosure, description optimization, subagent testing loops)
  • @wcpaxx — brownfield detection approach and the "analyze before asking" idea
  • @travisvn/awesome-claude-skills — curated community registry as a reference for our skill-discovery

Each solved a piece of the puzzle of embedding Claude into a workflow. JARVIS combines these ideas and adds its own angle: a persistent assistant across the project's lifetime, not a one-shot bootstrap.


License

MIT — see LICENSE and NOTICE.md for formal attributions.

About

Persistent project assistant for Claude Code. Bootstrap new projects or adopt existing ones via gap analysis. Quiet background hooks maintain wiki, pick the right model per task, and surface past decisions. Built for vibe-coders.

Topics

Resources

License

Contributing

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages