{
  "markdown": "# skilly\n\nPersonal skill hub: Bundles + CLI + nightly Update behind a PR gate. Flows: [docs/flows user.mmd](docs/flows%20user.mmd) and [docs/flows sync.mmd](docs/flows%20sync.mmd) — the per-script diagrams in `docs/*.mmd` are the spec. Bundle catalog: [docs/bundles.md](docs/bundles.md).\n\n## Commands (run in the Consumer repo)\n\n```sh\nnpx github:timschoch/skilly setup                       # one-time: secrets, .skilly/config.json, caller workflow, setup-project skill\nnpx github:timschoch/skilly add <bundle-or-skill...>    # install, rules, commit, ensure PR\nnpx github:timschoch/skilly remove <bundle-or-skill...> # uninstall (keeps skills other bundles claim), rules, commit\nnpx github:timschoch/skilly update                      # pull hub changes, update all skills, rules, commit\n```\n\nEvery command guards its branch (`skilly-*`, main → `chore/skilly-setup`, anything else asks once and remembers in `.git/config`) and ends with its own commit + PR.\n\n## New-repo setup, in order\n\n1. Create the repo and give `main` its first commit — skilly refuses a bare repo:\n\n   ```sh\n   gh repo create <owner>/<repo> --private --clone && cd <repo>\n   echo \"# <repo>\" > README.md\n   git add . && git commit -m \"chore: initial commit\" && git push -u origin main\n   ```\n\n2. `npx -y github:timschoch/skilly setup` — switches to `chore/skilly-setup`, sets the App secrets, writes `.skilly/config.json` (no bundles), writes `.github/workflows/skilly-sync.yml`, adds formatter ignores, gitignores `.temp/` (agent scratch space), installs the `setup-project` skill, commits, opens the PR — then launches Claude Code (Opus) with `/setup-project`.\n   The App secrets come from the owner account's own [GitHub App](lib/github-app.js), one per account, shared by all its repos. The first setup for an account asks for it: create a private one in the browser, or use an existing one (App ID + key file). It is saved in `~/.config/skilly/apps/<owner>.json`, then setup waits until the App is installed on the repo. Org secrets `SKILLY_APP_ID` and `SKILLY_APP_PRIVATE_KEY` skip all of this: every repo of the org gets them, no key needed.\n   New repo (no README text, no stack file): opens the [setup interview](lib/interview/server.js) in the browser instead. Answer every question there, press Run AFK, walk away. Claude runs the whole setup and opens one setup PR. Steps 3–4 are then done.\n3. `/setup-project` — asks: setup workflow? tech stack? Drives the setup skills in order and adds Bundles via `skilly add`. (Or by hand: `npx -y github:timschoch/skilly add workflow` plus your `tech-*`/`project-*` bundles.)\n4. `npx -y github:timschoch/skilly update` — asks to drop bundle-less setup skills (e.g. `setup-project` once you're done with it); say yes.\n5. Merge the PR, then prove the workflow: `gh workflow run skilly-sync.yml && gh run watch`. No changes → no Sync PR.\n\nFrom then on: `add` / `remove` / `update` any time. The nightly workflow runs `update` headless and keeps one standing Sync PR (`chore/skilly-update`); the gate merges it when green and removal-free, after the repo's required checks pass — removals always wait for you.\n",
  "bytes": 3129,
  "sha": "740ab0db5dbb9ee5de22e2671e78c3bba1be69576db01a06b43797980678bb77",
  "repo_slug": "timschoch/skilly",
  "fonte": "repo",
  "truncated": false,
  "api": "https://api.agentalog.com/api/listings/skl_timschoch_skilly_posthog_cli_e43ce8f3/readme"
}