init-project

star 173

TRIGGER when user asks to initialize, set up, or bootstrap a Microbus project. Creates main/main.go, config files, agent files, .gitignore, VS Code launch config, and authentication scaffolding.

microbus-io By microbus-io schedule Updated 6/13/2026

name: init-project description: TRIGGER when user asks to initialize, set up, or bootstrap a Microbus project. Creates main/main.go, config files, agent files, .gitignore, VS Code launch config, and authentication scaffolding.

CRITICAL: Do NOT explore or analyze the project unless explicitly instructed to do so. The instructions in this skill are self-contained.

Workflow

Copy this checklist and track your progress:

Initialize a project to use Microbus:
- [ ] Step 1: Check if a Microbus project
- [ ] Step 2: Prepare main package
- [ ] Step 3: Prepare agent files
- [ ] Step 4: Prepare config files
- [ ] Step 5: Prepare env files
- [ ] Step 6: Prepare git ignore
- [ ] Step 7: Prepare VS Code launch
- [ ] Step 8: Prepare Claude Code permissions
- [ ] Step 9: Prepare authentication

Step 1: Check if a Microbus Project

If go.mod does not exist in the project directory, this is not a Go project. Exit this workflow.

If go.mod does not include a reference to github.com/microbus-io/fabric, this is not a Microbus project. Exit this workflow.

Step 2: Prepare Main Package

Create the main directory in the root of the project if one does not exist.

mkdir -p main

Create main/main.go the content of the template main.go located in the directory of this skill.. If the file already exists, do not update it.

Create main/env.yaml with the following verbatim. If the file already exists, prepend the content to the existing file unless already there.

MICROBUS_DEPLOYMENT: LOCAL

Step 3: Prepare Agent Files

Create CLAUDE.md at the root of the project with the following content. If the file already exists, prepend the content to the existing file unless it is already there.

**CRITICAL**: This project uses the Microbus framework. Read all `.md` files in `.claude/rules/` before starting any task.

Step 4: Prepare Config Files

Create config.yaml at the root of the project with the following content verbatim. If the file already exists, do not update it.

all:
  Example: value

myservice.hostname:
  Example: value

Create config.local.yaml at the root of the project with the following content verbatim. If the file already exists, do not update it.

all:
  ExampleSecret: secret value

myservice.hostname:
  ExampleSecret: secret value

Step 5: Prepare Env Files

Create env.yaml and env.local.yaml at the root of the project the content of the template env.yaml located in the directory of this skill. If the files already exist, do not overwrite them.

Step 6: Prepare Git Ignore

Create .gitignore at the root of the project with the following content. If the file already exists, append the content to the existing file unless already there.

# Microbus
*.local.*
/main/main
/main/__debug_bin*
.DS_Store

Step 7: Prepare VS Code Launch

Create .vscode/launch.json relative to the root of the project with the following content. If the file already exists, add the Main configuration to the existing file instead unless already there.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Main",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceFolder}/main",
            "cwd": "${workspaceFolder}/main"
        },
    ]
}

Step 8: Prepare Claude Code Permissions

Create .claude/settings.json relative to the root of the project with the following content. If the file already exists, merge the entries below into the existing permissions.allow array unless already there.

{
  "permissions": {
    "allow": [
      "Bash(go run github.com/microbus-io/fabric/cmd/:*)",
      "Bash(go vet:*)",
      "Bash(go test:*)",
      "Bash(go build:*)",
      "Bash(go mod:*)",
      "Bash(mkdir:*)",
      "Read",
      "Write",
      "Edit",
      "Glob",
      "Grep"
    ]
  }
}

This auto-approves the Bash commands invoked by the housekeeping and regenerate-boilerplate skills, so an agent following them does not get prompted for each invocation. The file is project-shared and should be checked into git.

NOTE: Writing .claude/settings.json adds permission allow-rules, which some harness safety modes classify as a self-modification and may block on the first attempt even though this skill instructs it. If the write is denied, surface the proposed contents to the user and ask them to approve it (or have them create the file), rather than trying to work around the denial. This step is a convenience to reduce permission prompts and is safe to skip if the user declines.

Step 9: Prepare Authentication

IMPORTANT: Read .claude/rules/auth.txt for authentication conventions before proceeding with this step.

Generate an Ed25519 key and set it in config.local.yaml for the PrivateKey config of the bearer.token.core microservice.

openssl genpkey -algorithm Ed25519 -out private.pem
bearer.token.core:
  PrivateKey: MC4CAQAwBQYDK2VwBCIEILioh4C097ydAtppNWBMxO1hkewbzzmbGs1z7n9+OHnp

After copying the base64 body of the key into config.local.yaml, delete private.pem. The canonical key lives in config.local.yaml (git-ignored); the .pem file is a throwaway intermediate. Do not leave it in the project root: it is the token-mint signing root, and anyone who reads it can mint access tokens with arbitrary claims.

rm private.pem
Install via CLI
npx skills add https://github.com/microbus-io/fabric --skill init-project
Repository Details
star Stars 173
call_split Forks 5
navigation Branch main
article Path SKILL.md
More from Creator