http-collection/SKILL.md
Scaffold or repair `etc/http/` OpenCollection trees for Bruno. Use for new collections, brownfield standardization, or Bruno/Postman migration.
npx skillsauth add sanurb/skills http-collectionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Build one canonical etc/http/ tree that matches the repo's real API surface and domain language.
Reference spec: https://spec.opencollection.com/ (v1.0.0).
etc/http/ collectionetc/http/ treecurl snippetsetc/http/opencollection.yml is absent; brownfield when etc/http/ or any collection item already exists.scripts/scaffold.sh <project-root> to create the canonical starter tree.etc/http/opencollection.yml as the collection root. Use OpenCollection YAML (.yml) for request and folder files.etc/http/environments/*.json. Put secrets in .env. Commit only .env.sample.identity/, billing/, lifecycle/), never by HTTP verb or raw URL shape.etc/http/lib.js. Put shared runtime setup in opencollection.yml.docs: block.scripts/scaffold.sh <project-root>.domain-context/ with real bounded-context folder names from the repo.This skill produces one artifact. Return exactly this markdown artifact after applying the skill:
## HTTP Collection Plan
- Mode: {greenfield | brownfield}
- Read: `references/spec-summary.md`, `references/templates.md`, `references/readme-template.md`, `scripts/scaffold.sh`
- Ran: `scripts/scaffold.sh <project-root>`
- Created: {files}
- Updated: {files}
- Removed: {files or "none"}
- Customized domains: {folders}
- Validation:
- [ ] `opencollection.yml` is the root
- [ ] `environments/*.json` contain placeholders or `process.env` references only
- [ ] `.env.sample` exists and `.env` stays uncommitted
- [ ] `lib.js` holds shared assertions
- [ ] every request has tags and `docs:`
- [ ] folder names use domain language, not HTTP verbs
| Task | Read |
|------|------|
| Understand required schema | references/spec-summary.md |
| Copy or adapt starter files | references/templates.md |
| Write or refresh the collection README.md | references/readme-template.md |
| Generate starter tree | scripts/scaffold.sh |
Before
repo/
└── src/
After
etc/http/
├── opencollection.yml
├── lib.js
├── .env.sample
├── .gitignore
├── README.md
├── environments/
│ ├── local.json
│ ├── staging.json
│ └── production.json
├── observability/
│ ├── folder.yml
│ └── liveness.yml
└── identity/
├── folder.yml
└── current-principal.yml
Use identity/ because the repo's auth API is the real bounded context. Do not keep domain-context/ once the real folder exists.
Before
etc/http/
├── identity/
│ └── current-principal.yml
├── billing/
│ └── invoice-summary.yml
└── domain-context/
└── get-resource.yml
After
etc/http/
├── opencollection.yml
├── lib.js
├── .env.sample
├── .gitignore
├── README.md
├── environments/
│ ├── local.json
│ ├── staging.json
│ └── production.json
├── observability/
│ ├── folder.yml
│ └── liveness.yml
├── identity/
│ └── current-principal.yml
└── billing/
└── invoice-summary.yml
Keep identity/ and billing/. Delete the placeholder domain-context/ tree after the real contexts cover the domain.
SKILL.md stays lean; starter content lives in the reference files.opencollection.yml is valid OpenCollection YAML..env or process.env.development
Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub, GitLab, fp, or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `fp-plan`, `fp-implement`, `fp-review`, `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.
development
Build a throwaway prototype to flush out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
tools
Control herdr (a terminal-native agent multiplexer) from inside it. Manage workspaces and tabs, split panes, spawn sibling agents, read pane output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1). Do not use outside herdr.
documentation
Compact the current conversation into a handoff document for another agent to pick up.