Skip to content
Back to skills

Init

ASecurity

Set up this repository to run agents as a team. Trigger on "set up murmur", "murmur init", "onboard this repo", "install the team contract here". Asks seven questions with defaults, stores the answers, then writes the contract, the tracker rules, a pull request template, a lessons file, the list of generated files and, when there is none, a CLAUDE.md. Never overwrites a file that already exists.

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 26, 2026
ai-agentsgobashgit

Works with

  • claude code

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add magik-ai/murmur --skill init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Init?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/magik-ai-init/badge)](https://www.skillsdirectory.com/skills/magik-ai-init)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: init
description: Set up this repository to run agents as a team. Trigger on "set up murmur", "murmur init", "onboard this repo", "install the team contract here". Asks seven questions with defaults, stores the answers, then writes the contract, the tracker rules, a pull request template, a lessons file, the list of generated files and, when there is none, a CLAUDE.md. Never overwrites a file that already exists.
---

# Init

You are setting up one repository. Seven questions, then a handful of files.
It takes a couple of minutes, and it is safe to run again later.

Three rules hold for the whole run.

- **Never invent an answer.** Every question goes to the person, with its
  default shown. Wait for the reply: silence is not consent. A reply of `ok`
  or `default`, or an empty reply, means the default.
- **Never write a file yourself, and never change one that exists.** The
  script writes. You ask, store and explain. That is what makes a second run
  safe.
- **Stop on an error.** If a command exits with an error, show the person its
  message and stop. Never edit `.murmur/config.toml` to get past it.

**Where the scripts are.** The commands below run murmur's scripts from
`${CLAUDE_PLUGIN_ROOT}`, the plugin's folder. Claude Code fills it in, and
murmur's skill installer for Codex writes it in. If it is ever empty, use
`~/work/murmur/plugin`, and clone murmur there first if that folder is missing:
`git clone https://github.com/magik-ai/murmur ~/work/murmur`.

## 1. Find what is still unanswered

```bash
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/murmur_init.py questions
```

It prints a JSON array. Each item has `id`, `prompt`, `type`, `choices` and
`default`. An empty array means everything is answered already: skip to step 3.

## 2. Ask one question at a time, in the order printed

Put one question in front of the person, wait for the reply, and store it
before you ask the next. Do not put all seven in one message: a list of seven
questions gets one vague reply.

For each item, show the prompt, the choices when there are any, and the
default, like this:

```text
Where is work tracked?
  github-issues, linear, jira, notion, none
  default: github-issues  (reply ok to accept)
```

The item with `"multiple": true` takes several values, separated by commas.
Say so. Say also that the default is all of them, because that is the safe
answer: each value names an action that will need the person's word before it
happens.

Store each answer as it arrives:

```bash
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/murmur_init.py answer --id tracker --value linear
```

A reply of `ok` or `default`, or an empty reply, means the default: pass the
default as the value. The script refuses a value that is not one of the
choices and lists the choices, so a typo costs one more question and nothing
else.

## 3. Write the files

```bash
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/murmur_init.py apply
```

If the person said "just use the defaults" or "set it up, I will adjust later",
skip the questions and run `apply --defaults`: every unanswered question takes
its default.

If the person works with Codex, add `--agents-md`. Codex reads `AGENTS.md`, not
`CLAUDE.md`, so murmur then also writes its pointer to the contract into
`AGENTS.md`, and creates that file when the repository has none.

It prints a JSON report with one entry per file. These are the files:

- `.murmur/config.toml`: the answers.
- `.murmur/contract.md`: the contract every agent here follows, built from the
  answers.
- `.claude/tracker.md`: how to use the chosen tracker.
- `.github/PULL_REQUEST_TEMPLATE.md`, `docs/GOTCHAS.md` (the lessons file) and
  `.claude/generated-files.txt` (the list of generated files that agents must
  not edit by hand): written only when they do not exist yet.
- `CLAUDE.md`: written from a template when the repository has none. The four
  sections the contract holds are each replaced by one line that points to it.
  It still has placeholders to fill in, such as `<NAME>` and `<DOC>`: its entry
  lists them under `placeholders`. Offer to fill them in with the person now,
  one at a time, or leave them for later.
- `AGENTS.md`: with `--agents-md`, created with the pointer when the repository
  has none.
- An existing `CLAUDE.md` or `AGENTS.md` gets four lines appended that point to
  the contract.
- When the answer to the farm question is `yes`, `CLAUDE.md` and `AGENTS.md`
  also get the farm block, once. It names the project this repository is on
  the farm (`farm_project` in the report) and the farm check every agent runs
  before it starts a lane: `fleet` is there, the farm answers, the project is
  registered, an account has room. If a check fails, the agent starts nothing
  and tells the person. Say this in plain words. If the farm is not set up yet,
  say that steps 8 to 13 of murmur's `INSTALL.md` set it up, up to a first lane.

Each entry has an action:

- `wrote`: the file was not there, now it is.
- `skipped`: nothing changed, and the note says why (identical, or already
  there and left alone).
- `appended`: the four pointer lines, or the farm block, were added to the end
  of `CLAUDE.md` or `AGENTS.md`. Each is added once, never twice.
- `removed`: the farm block came out of `CLAUDE.md` or `AGENTS.md`, because
  the farm answer is no longer `yes`.
- `alongside`: the file exists and differs, so the new version was written next
  to it as `<name>.murmur-new`. Nothing of the person's was touched.

Show the report as a short list in plain words, not as raw JSON. Name every
`alongside` file out loud. Say that two versions now sit side by side, and
that the person should read both and keep one.

If `.claude/generated-files.txt` was written, say that it starts with example
entries, and that edits to those paths are now blocked. The person replaces
them with their own generated files, or deletes them.

## 4. Say what comes next

Three steps, in this order.

1. Read `.murmur/contract.md`. It is short. It is the file every agent in this
   repository is expected to follow, and it was written from the answers just
   given.
2. Run `/murmur:doctor`. It checks the setup and prints a table and one word
   for where the setup stands.
3. Start the first task. The work gets a branch, a pull request and, when a
   tracker was chosen, an issue.

## Running it again

This is safe and expected. Answered questions do not come back, so a second run
asks only what is new, for example after an update of the plugin adds a
question. Files that exist are not overwritten: identical files are skipped,
a changed contract or tracker file gets a `.murmur-new` version beside it, and
the pointer goes into `CLAUDE.md` or `AGENTS.md` only once.

To change an answer, store the new value with `answer` (or the person edits
`.murmur/config.toml` by hand), then run `apply` again. The contract is rebuilt
from the answers, so a changed answer shows up as a `.murmur-new` file for the
person to compare.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.