bros-harness 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/LICENSE +21 -0
- package/README.md +183 -0
- package/SECURITY.md +16 -0
- package/assets/agents.manifest.json +55 -0
- package/assets/commands.manifest.json +35 -0
- package/assets/docs.manifest.json +20 -0
- package/assets/import-report.md +25 -0
- package/assets/manifest.json +799 -0
- package/assets/opencode/agents/README.md +3 -0
- package/assets/opencode/agents/bro-build.md +256 -0
- package/assets/opencode/agents/bro-design.md +77 -0
- package/assets/opencode/agents/bro-docs.md +72 -0
- package/assets/opencode/agents/bro-explore.md +143 -0
- package/assets/opencode/agents/bro-ops.md +195 -0
- package/assets/opencode/agents/bro-shield.md +77 -0
- package/assets/opencode/agents/bro-test.md +204 -0
- package/assets/opencode/agents/bro-ui.md +135 -0
- package/assets/opencode/agents/mighty-bro.md +252 -0
- package/assets/opencode/commands/README.md +3 -0
- package/assets/opencode/commands/bros-assemble.md +32 -0
- package/assets/opencode/commands/bros-build.md +58 -0
- package/assets/opencode/commands/bros-plan.md +83 -0
- package/assets/opencode/commands/bros-review.md +38 -0
- package/assets/opencode/commands/bros-status.md +26 -0
- package/assets/opencode/docs/README.md +3 -0
- package/assets/opencode/docs/bros-builtin-skills.md +63 -0
- package/assets/opencode/docs/bros-harness.md +194 -0
- package/assets/opencode/skills/README.md +3 -0
- package/assets/opencode/skills/agent-architecture-audit/SKILL.md +256 -0
- package/assets/opencode/skills/agent-harness-construction/.openskills.json +7 -0
- package/assets/opencode/skills/agent-harness-construction/SKILL.md +73 -0
- package/assets/opencode/skills/agent-introspection-debugging/.openskills.json +7 -0
- package/assets/opencode/skills/agent-introspection-debugging/SKILL.md +153 -0
- package/assets/opencode/skills/api-design/.openskills.json +7 -0
- package/assets/opencode/skills/api-design/agents/openai.yaml +7 -0
- package/assets/opencode/skills/architecture-decision-records/.openskills.json +7 -0
- package/assets/opencode/skills/architecture-decision-records/SKILL.md +179 -0
- package/assets/opencode/skills/article-writing/.openskills.json +7 -0
- package/assets/opencode/skills/article-writing/SKILL.md +79 -0
- package/assets/opencode/skills/article-writing/agents/openai.yaml +7 -0
- package/assets/opencode/skills/automation-audit-ops/.openskills.json +7 -0
- package/assets/opencode/skills/automation-audit-ops/SKILL.md +142 -0
- package/assets/opencode/skills/backend-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/backend-patterns/SKILL.md +561 -0
- package/assets/opencode/skills/backend-patterns/agents/openai.yaml +7 -0
- package/assets/opencode/skills/benchmark/.openskills.json +7 -0
- package/assets/opencode/skills/benchmark/SKILL.md +93 -0
- package/assets/opencode/skills/bros-orchestrate/SKILL.md +455 -0
- package/assets/opencode/skills/browser-qa/.openskills.json +7 -0
- package/assets/opencode/skills/browser-qa/SKILL.md +87 -0
- package/assets/opencode/skills/canary-watch/.openskills.json +7 -0
- package/assets/opencode/skills/canary-watch/SKILL.md +107 -0
- package/assets/opencode/skills/code-review-expert/SKILL.md +155 -0
- package/assets/opencode/skills/code-review-expert/agents/agent.yaml +7 -0
- package/assets/opencode/skills/code-review-expert/references/code-quality-checklist.md +130 -0
- package/assets/opencode/skills/code-review-expert/references/removal-plan.md +52 -0
- package/assets/opencode/skills/code-review-expert/references/security-checklist.md +118 -0
- package/assets/opencode/skills/code-review-expert/references/solid-checklist.md +65 -0
- package/assets/opencode/skills/code-tour/.openskills.json +7 -0
- package/assets/opencode/skills/code-tour/SKILL.md +236 -0
- package/assets/opencode/skills/coding-standards/.openskills.json +7 -0
- package/assets/opencode/skills/coding-standards/SKILL.md +549 -0
- package/assets/opencode/skills/coding-standards/agents/openai.yaml +7 -0
- package/assets/opencode/skills/context-budget/.openskills.json +7 -0
- package/assets/opencode/skills/context-budget/SKILL.md +135 -0
- package/assets/opencode/skills/database-migrations/.openskills.json +7 -0
- package/assets/opencode/skills/database-migrations/SKILL.md +429 -0
- package/assets/opencode/skills/deployment-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/deployment-patterns/SKILL.md +427 -0
- package/assets/opencode/skills/design-system/.openskills.json +7 -0
- package/assets/opencode/skills/design-system/SKILL.md +82 -0
- package/assets/opencode/skills/docker-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/docker-patterns/SKILL.md +364 -0
- package/assets/opencode/skills/documentation-lookup/.openskills.json +7 -0
- package/assets/opencode/skills/documentation-lookup/SKILL.md +90 -0
- package/assets/opencode/skills/documentation-lookup/agents/openai.yaml +7 -0
- package/assets/opencode/skills/e2e-testing/.openskills.json +7 -0
- package/assets/opencode/skills/e2e-testing/SKILL.md +326 -0
- package/assets/opencode/skills/e2e-testing/agents/openai.yaml +7 -0
- package/assets/opencode/skills/error-handling/SKILL.md +376 -0
- package/assets/opencode/skills/frontend-design/.openskills.json +7 -0
- package/assets/opencode/skills/frontend-design/SKILL.md +145 -0
- package/assets/opencode/skills/frontend-design-direction/SKILL.md +92 -0
- package/assets/opencode/skills/frontend-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/frontend-patterns/SKILL.md +642 -0
- package/assets/opencode/skills/frontend-patterns/agents/openai.yaml +7 -0
- package/assets/opencode/skills/gateguard/.openskills.json +7 -0
- package/assets/opencode/skills/gateguard/SKILL.md +125 -0
- package/assets/opencode/skills/git-master/SKILL.md +60 -0
- package/assets/opencode/skills/golang-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/golang-patterns/SKILL.md +674 -0
- package/assets/opencode/skills/golang-testing/.openskills.json +7 -0
- package/assets/opencode/skills/golang-testing/SKILL.md +720 -0
- package/assets/opencode/skills/grafana-dashboard-design/SKILL.md +65 -0
- package/assets/opencode/skills/hexagonal-architecture/.openskills.json +7 -0
- package/assets/opencode/skills/hexagonal-architecture/SKILL.md +276 -0
- package/assets/opencode/skills/java-coding-standards/.openskills.json +7 -0
- package/assets/opencode/skills/java-coding-standards/SKILL.md +383 -0
- package/assets/opencode/skills/jpa-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/jpa-patterns/SKILL.md +151 -0
- package/assets/opencode/skills/knowledge-ops/.openskills.json +7 -0
- package/assets/opencode/skills/knowledge-ops/SKILL.md +154 -0
- package/assets/opencode/skills/make-interfaces-feel-better/SKILL.md +151 -0
- package/assets/opencode/skills/mysql-patterns/SKILL.md +412 -0
- package/assets/opencode/skills/nestjs-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/nestjs-patterns/SKILL.md +230 -0
- package/assets/opencode/skills/nextjs-turbopack/.openskills.json +7 -0
- package/assets/opencode/skills/nextjs-turbopack/SKILL.md +57 -0
- package/assets/opencode/skills/nextjs-turbopack/agents/openai.yaml +7 -0
- package/assets/opencode/skills/parallel-execution-optimizer/SKILL.md +72 -0
- package/assets/opencode/skills/postgres-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/postgres-patterns/SKILL.md +147 -0
- package/assets/opencode/skills/prisma-patterns/SKILL.md +371 -0
- package/assets/opencode/skills/product-capability/.openskills.json +7 -0
- package/assets/opencode/skills/product-capability/SKILL.md +141 -0
- package/assets/opencode/skills/product-lens/.openskills.json +7 -0
- package/assets/opencode/skills/product-lens/SKILL.md +92 -0
- package/assets/opencode/skills/production-audit/SKILL.md +206 -0
- package/assets/opencode/skills/python-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/python-patterns/SKILL.md +750 -0
- package/assets/opencode/skills/python-testing/.openskills.json +7 -0
- package/assets/opencode/skills/python-testing/SKILL.md +816 -0
- package/assets/opencode/skills/redis-patterns/SKILL.md +403 -0
- package/assets/opencode/skills/requirements-clarity/README.md +260 -0
- package/assets/opencode/skills/requirements-clarity/SKILL.md +324 -0
- package/assets/opencode/skills/rust-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/rust-patterns/SKILL.md +499 -0
- package/assets/opencode/skills/rust-testing/.openskills.json +7 -0
- package/assets/opencode/skills/rust-testing/SKILL.md +500 -0
- package/assets/opencode/skills/safety-guard/.openskills.json +7 -0
- package/assets/opencode/skills/safety-guard/SKILL.md +75 -0
- package/assets/opencode/skills/search-first/.openskills.json +7 -0
- package/assets/opencode/skills/search-first/SKILL.md +181 -0
- package/assets/opencode/skills/security-review/.openskills.json +7 -0
- package/assets/opencode/skills/security-review/agents/openai.yaml +7 -0
- package/assets/opencode/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/assets/opencode/skills/security-scan/.openskills.json +7 -0
- package/assets/opencode/skills/security-scan/SKILL.md +165 -0
- package/assets/opencode/skills/springboot-patterns/.openskills.json +7 -0
- package/assets/opencode/skills/springboot-patterns/SKILL.md +314 -0
- package/assets/opencode/skills/springboot-tdd/.openskills.json +7 -0
- package/assets/opencode/skills/springboot-tdd/SKILL.md +158 -0
- package/assets/opencode/skills/springboot-verification/.openskills.json +7 -0
- package/assets/opencode/skills/springboot-verification/SKILL.md +231 -0
- package/assets/opencode/skills/strategic-compact/.openskills.json +7 -0
- package/assets/opencode/skills/strategic-compact/SKILL.md +131 -0
- package/assets/opencode/skills/strategic-compact/agents/openai.yaml +7 -0
- package/assets/opencode/skills/strategic-compact/suggest-compact.sh +54 -0
- package/assets/opencode/skills/tdd-workflow/.openskills.json +7 -0
- package/assets/opencode/skills/tdd-workflow/SKILL.md +463 -0
- package/assets/opencode/skills/tdd-workflow/agents/openai.yaml +7 -0
- package/assets/opencode/skills/verification-loop/.openskills.json +7 -0
- package/assets/opencode/skills/verification-loop/SKILL.md +126 -0
- package/assets/opencode/skills/verification-loop/agents/openai.yaml +7 -0
- package/assets/opencode/skills/vite-patterns/SKILL.md +449 -0
- package/assets/opencode/skills/web-doc-search/SKILL.md +51 -0
- package/assets/opencode/templates/README.md +3 -0
- package/assets/opencode/templates/bros/adr.md +39 -0
- package/assets/opencode/templates/bros/delivery-report.md +71 -0
- package/assets/opencode/templates/bros/explorer-evidence-packet.md +51 -0
- package/assets/opencode/templates/bros/prd.md +72 -0
- package/assets/opencode/templates/bros/security-review.md +48 -0
- package/assets/opencode/templates/bros/status-board.md +33 -0
- package/assets/opencode/templates/bros/task-packet.md +94 -0
- package/assets/opencode/templates/bros/test-strategy.md +57 -0
- package/assets/opencode/templates/bros/ui-implementation-packet.md +64 -0
- package/assets/skills.manifest.json +650 -0
- package/assets/templates.manifest.json +55 -0
- package/bin/bros.mjs +122 -0
- package/docs/compatibility.md +9 -0
- package/docs/installation.md +66 -0
- package/docs/integrations/claude.md +5 -0
- package/docs/integrations/codex.md +5 -0
- package/docs/integrations/opencode.md +39 -0
- package/docs/migration/from-local-opencode-config.md +10 -0
- package/docs/release-process.md +11 -0
- package/docs/repository-structure.md +15 -0
- package/docs/roadmap.md +20 -0
- package/docs/security.md +18 -0
- package/docs/testing.md +9 -0
- package/examples/opencode/README.md +11 -0
- package/examples/opencode/opencode.example.jsonc +4 -0
- package/package.json +43 -0
- package/scripts/validate-assets.mjs +22 -0
- package/scripts/verify-no-secrets.mjs +38 -0
- package/src/plugin.mjs +98 -0
package/CHANGELOG.md
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 BROS Harness contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# BROS Harness
|
|
2
|
+
|
|
3
|
+
**Move slower than chaos. Ship faster than rework.**
|
|
4
|
+
|
|
5
|
+
BROS Harness is a package-first OpenCode plugin for engineering teams that want AI-assisted delivery without losing discipline. It packages a reviewed set of BROS agents, commands, skills, templates, and documentation, then exposes them through a narrow OpenCode plugin and a read-only helper CLI.
|
|
6
|
+
|
|
7
|
+
BROS is not an AI swarm that floods a codebase with unsupervised workers. It is a gated delivery harness: clarify the work, challenge weak assumptions, implement only approved scope, verify the result, and hand off remaining risk clearly.
|
|
8
|
+
|
|
9
|
+
The tone has bro spirit. The operating model is professional engineering.
|
|
10
|
+
|
|
11
|
+
## Why BROS?
|
|
12
|
+
|
|
13
|
+
AI coding can feel fast while quietly creating rework: vague plans, hidden scope expansion, optimistic reviews, skipped security checks, and changes nobody can explain later.
|
|
14
|
+
|
|
15
|
+
BROS exists to make AI-assisted work slower at the points where rushing is expensive:
|
|
16
|
+
|
|
17
|
+
- **Before implementation:** define the packet, scope, gates, evidence, and acceptance criteria.
|
|
18
|
+
- **During implementation:** make the smallest correct change and preserve existing conventions.
|
|
19
|
+
- **Before handoff:** run the approved checks, report what changed, and surface risks instead of burying them.
|
|
20
|
+
|
|
21
|
+
That discipline is what makes teams faster over the full delivery cycle.
|
|
22
|
+
|
|
23
|
+
## How BROS differs from AI swarms
|
|
24
|
+
|
|
25
|
+
| AI swarm pattern | BROS Harness pattern |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| Many agents run at once by default. | Roles are explicit and gated by task packets. |
|
|
28
|
+
| Speed is treated as the main measure. | Quality, security, and reviewability come first. |
|
|
29
|
+
| Agents may expand scope to “finish” the goal. | Builders implement only approved scope. |
|
|
30
|
+
| Failures are patched over until output looks plausible. | Blockers, uncertainty, and residual risk are reported. |
|
|
31
|
+
| Tooling may mutate broad config surfaces. | The package plugin uses a narrow in-memory OpenCode hook only. |
|
|
32
|
+
|
|
33
|
+
BROS is for teams that would rather challenge a bad request early than clean up a confident mess later.
|
|
34
|
+
|
|
35
|
+
## Meet the Bros
|
|
36
|
+
|
|
37
|
+
The “Bro” names are display aliases, not authority overrides. Technical IDs, OpenCode config, permissions, user instructions, security gates, and QA gates remain the source of truth.
|
|
38
|
+
|
|
39
|
+
- **Mighty Bro** — orchestrates gates, packets, and final review flow.
|
|
40
|
+
- **Bro Build** — implements approved task packets with the smallest correct change.
|
|
41
|
+
- **Bro Test** — verifies behavior and pushes back on weak test evidence.
|
|
42
|
+
- **Bro Shield** — reviews security-sensitive changes and blocks unsafe shortcuts.
|
|
43
|
+
- **Bro Explore** — gathers evidence before the team relies on assumptions.
|
|
44
|
+
- **Bro Docs** — turns verified implementation context into maintainable documentation.
|
|
45
|
+
- **Bro UI / Bro Design** — provide design direction when UI work requires it.
|
|
46
|
+
|
|
47
|
+
The spirit is collaborative. The rules are strict.
|
|
48
|
+
|
|
49
|
+
## Workflow
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Intake
|
|
53
|
+
↓
|
|
54
|
+
Clarify objective, risk, and scope
|
|
55
|
+
↓
|
|
56
|
+
Plan approved task packet
|
|
57
|
+
↓
|
|
58
|
+
Explore evidence when required
|
|
59
|
+
↓
|
|
60
|
+
Implement only approved scope
|
|
61
|
+
↓
|
|
62
|
+
Validate with approved checks
|
|
63
|
+
↓
|
|
64
|
+
Security / QA / review gates
|
|
65
|
+
↓
|
|
66
|
+
Handoff with changes, verification, and remaining risks
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The point is not ceremony for ceremony’s sake. The point is to keep useful pressure on the work: What is approved? What evidence supports it? What changed? What still needs review?
|
|
70
|
+
|
|
71
|
+
## Principles
|
|
72
|
+
|
|
73
|
+
1. **No rubber stamps.** Risky or unclear requests should be challenged respectfully.
|
|
74
|
+
2. **Scope is a safety boundary.** A builder does not become the product owner, architect, QA approver, or security approver.
|
|
75
|
+
3. **Evidence beats vibes.** Required evidence packets, UI packets, and gate outcomes must exist before dependent work proceeds.
|
|
76
|
+
4. **Small changes win.** Prefer the narrowest implementation that satisfies the approved packet.
|
|
77
|
+
5. **Security is not a final garnish.** Secrets, permissions, providers, MCP servers, telemetry, and production mutations require explicit review paths.
|
|
78
|
+
6. **Readable handoff matters.** Future maintainers should know what changed, why, how it was verified, and what remains risky.
|
|
79
|
+
|
|
80
|
+
## Installation
|
|
81
|
+
|
|
82
|
+
BROS Harness is OpenCode-first. The primary install path is the package plugin snippet:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"plugin": ["bros-harness"]
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
After adding the plugin entry through your normal OpenCode configuration workflow, restart OpenCode so startup configuration is reloaded.
|
|
91
|
+
|
|
92
|
+
Optional read-only CLI checks:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
bros snippet
|
|
96
|
+
bros doctor
|
|
97
|
+
bros list-assets
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
For AI-assisted setup, use a narrow prompt:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
Add BROS Harness to OpenCode using only the package plugin snippet { "plugin": ["bros-harness"] }. Do not install dependencies, publish packages, edit provider settings, add MCP servers, change permissions, configure telemetry, validate secrets, or overwrite existing config. If a config already exists, merge only the plugin entry, show the diff, and ask before writing. Tell the human to restart OpenCode after the approved edit.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The CLI can print similar guidance:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
bros agent-install-prompt
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Safety by design
|
|
113
|
+
|
|
114
|
+
The package plugin is intentionally narrow.
|
|
115
|
+
|
|
116
|
+
On load, it verifies packaged asset directories and uses OpenCode’s in-memory `config(cfg)` hook to add only:
|
|
117
|
+
|
|
118
|
+
- the package-relative BROS skills directory to `skills.paths`, when the existing field has the expected safe shape; and
|
|
119
|
+
- packaged command prompt entries to `command`, without overwriting existing command keys.
|
|
120
|
+
|
|
121
|
+
It does **not**:
|
|
122
|
+
|
|
123
|
+
- write `opencode.json`, `.opencode/`, global OpenCode config files, or other live config files;
|
|
124
|
+
- install dependencies;
|
|
125
|
+
- publish packages;
|
|
126
|
+
- register providers;
|
|
127
|
+
- add MCP servers;
|
|
128
|
+
- change permissions;
|
|
129
|
+
- configure telemetry;
|
|
130
|
+
- read, validate, or write secrets.
|
|
131
|
+
|
|
132
|
+
Packaged agent files are included as reviewed assets, but they are not auto-registered by the default plugin hook because permission-bearing agent registration should remain an explicit, reviewed configuration decision.
|
|
133
|
+
|
|
134
|
+
Three skipped raw skills remain excluded pending separate sanitized review. They are not imported by this package.
|
|
135
|
+
|
|
136
|
+
## What is included
|
|
137
|
+
|
|
138
|
+
- `assets/opencode/` — packaged agents, commands, skills, templates, and docs.
|
|
139
|
+
- `src/plugin.mjs` — the OpenCode plugin entrypoint exposed by `main` and `exports`.
|
|
140
|
+
- `bin/bros.mjs` — a read-only helper CLI for snippets, package checks, asset summaries, and safe setup prompts.
|
|
141
|
+
- `scripts/validate-assets.mjs` and `scripts/verify-no-secrets.mjs` — dependency-free validation scripts retained in the package surface.
|
|
142
|
+
|
|
143
|
+
Maintainer-only asset import tooling remains repository-local, environment-gated, and excluded from the published package surface. It is not a user installation command.
|
|
144
|
+
|
|
145
|
+
## Local validation
|
|
146
|
+
|
|
147
|
+
For repository maintainers working from source:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npm run validate
|
|
151
|
+
node bin/bros.mjs doctor
|
|
152
|
+
node bin/bros.mjs snippet
|
|
153
|
+
npm pack --dry-run
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Do not publish from this repository unless a separate release approval explicitly authorizes publishing. Dry runs are useful; real registry mutation is a different gate.
|
|
157
|
+
|
|
158
|
+
## Contribution
|
|
159
|
+
|
|
160
|
+
Contributions should strengthen the harness without weakening the safety model.
|
|
161
|
+
|
|
162
|
+
Before proposing changes, check:
|
|
163
|
+
|
|
164
|
+
- Does this preserve OpenCode-first installation accuracy?
|
|
165
|
+
- Does it avoid unsupported claims about automatic registration, providers, MCPs, permissions, telemetry, and secrets?
|
|
166
|
+
- Does it keep skipped or unreviewed assets out of the package?
|
|
167
|
+
- Does it include validation or explain why validation is not applicable?
|
|
168
|
+
- Does it improve maintainability without turning BROS into a broad, uncontrolled swarm?
|
|
169
|
+
|
|
170
|
+
Useful references:
|
|
171
|
+
|
|
172
|
+
- [`docs/installation.md`](docs/installation.md)
|
|
173
|
+
- [`docs/integrations/opencode.md`](docs/integrations/opencode.md)
|
|
174
|
+
- [`docs/security.md`](docs/security.md)
|
|
175
|
+
- [`CONTRIBUTING.md`](CONTRIBUTING.md)
|
|
176
|
+
|
|
177
|
+
## The memorable part
|
|
178
|
+
|
|
179
|
+
BROS is a reminder that the best AI engineering workflows are not the loudest or fastest-looking ones. They are the ones that keep promises small, evidence visible, and risk owned.
|
|
180
|
+
|
|
181
|
+
Challenge the plan. Respect the gates. Build the thing. Verify the thing.
|
|
182
|
+
|
|
183
|
+
**Move slower than chaos. Ship faster than rework.**
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported status
|
|
4
|
+
|
|
5
|
+
This repository is in an initial scaffold stage. OpenCode assets are included for review and follow-up hardening. Publishing requires final security approval.
|
|
6
|
+
|
|
7
|
+
## Reporting vulnerabilities
|
|
8
|
+
|
|
9
|
+
Please open a private security advisory or contact the maintainers through the project security channel. Do not include live credentials, API keys, tokens, cookies, or private endpoints in reports.
|
|
10
|
+
|
|
11
|
+
## Import safety rules
|
|
12
|
+
|
|
13
|
+
- Raw local `opencode.json` or `opencode.jsonc` files are not part of this package.
|
|
14
|
+
- Examples must use placeholders only.
|
|
15
|
+
- Validation scripts search for common secret patterns before packaging.
|
|
16
|
+
- Release automation must not publish without an explicit final security review.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"area": "agents",
|
|
3
|
+
"counts": {
|
|
4
|
+
"candidates": 9,
|
|
5
|
+
"imported": 9,
|
|
6
|
+
"skipped": 0
|
|
7
|
+
},
|
|
8
|
+
"entries": [
|
|
9
|
+
{
|
|
10
|
+
"area": "agents",
|
|
11
|
+
"path": "assets/opencode/agents/bro-build.md",
|
|
12
|
+
"sourceRef": "opencode-agent"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"area": "agents",
|
|
16
|
+
"path": "assets/opencode/agents/bro-design.md",
|
|
17
|
+
"sourceRef": "opencode-agent"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"area": "agents",
|
|
21
|
+
"path": "assets/opencode/agents/bro-docs.md",
|
|
22
|
+
"sourceRef": "opencode-agent"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"area": "agents",
|
|
26
|
+
"path": "assets/opencode/agents/bro-explore.md",
|
|
27
|
+
"sourceRef": "opencode-agent"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"area": "agents",
|
|
31
|
+
"path": "assets/opencode/agents/bro-ops.md",
|
|
32
|
+
"sourceRef": "opencode-agent"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"area": "agents",
|
|
36
|
+
"path": "assets/opencode/agents/bro-shield.md",
|
|
37
|
+
"sourceRef": "opencode-agent"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"area": "agents",
|
|
41
|
+
"path": "assets/opencode/agents/bro-test.md",
|
|
42
|
+
"sourceRef": "opencode-agent"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"area": "agents",
|
|
46
|
+
"path": "assets/opencode/agents/bro-ui.md",
|
|
47
|
+
"sourceRef": "opencode-agent"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"area": "agents",
|
|
51
|
+
"path": "assets/opencode/agents/mighty-bro.md",
|
|
52
|
+
"sourceRef": "opencode-agent"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"area": "commands",
|
|
3
|
+
"counts": {
|
|
4
|
+
"candidates": 5,
|
|
5
|
+
"imported": 5,
|
|
6
|
+
"skipped": 0
|
|
7
|
+
},
|
|
8
|
+
"entries": [
|
|
9
|
+
{
|
|
10
|
+
"area": "commands",
|
|
11
|
+
"path": "assets/opencode/commands/bros-assemble.md",
|
|
12
|
+
"sourceRef": "opencode-command"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"area": "commands",
|
|
16
|
+
"path": "assets/opencode/commands/bros-build.md",
|
|
17
|
+
"sourceRef": "opencode-command"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"area": "commands",
|
|
21
|
+
"path": "assets/opencode/commands/bros-plan.md",
|
|
22
|
+
"sourceRef": "opencode-command"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"area": "commands",
|
|
26
|
+
"path": "assets/opencode/commands/bros-review.md",
|
|
27
|
+
"sourceRef": "opencode-command"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"area": "commands",
|
|
31
|
+
"path": "assets/opencode/commands/bros-status.md",
|
|
32
|
+
"sourceRef": "opencode-command"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"area": "docs",
|
|
3
|
+
"counts": {
|
|
4
|
+
"candidates": 2,
|
|
5
|
+
"imported": 2,
|
|
6
|
+
"skipped": 0
|
|
7
|
+
},
|
|
8
|
+
"entries": [
|
|
9
|
+
{
|
|
10
|
+
"area": "docs",
|
|
11
|
+
"path": "assets/opencode/docs/bros-builtin-skills.md",
|
|
12
|
+
"sourceRef": "opencode-doc"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"area": "docs",
|
|
16
|
+
"path": "assets/opencode/docs/bros-harness.md",
|
|
17
|
+
"sourceRef": "opencode-doc"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Import Report
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
- Total source candidates: 156
|
|
6
|
+
- Imported: 153
|
|
7
|
+
- Skipped: 3
|
|
8
|
+
|
|
9
|
+
## Counts by Area
|
|
10
|
+
|
|
11
|
+
- agents: candidates=9, imported=9, skipped=0
|
|
12
|
+
- commands: candidates=5, imported=5, skipped=0
|
|
13
|
+
- skills: candidates=131, imported=128, skipped=3
|
|
14
|
+
- docs: candidates=2, imported=2, skipped=0
|
|
15
|
+
- templates: candidates=9, imported=9, skipped=0
|
|
16
|
+
|
|
17
|
+
## Skipped Items
|
|
18
|
+
|
|
19
|
+
- area: skills; source: `skills/api-design/SKILL.md`; reason: secret-like-pattern-detected
|
|
20
|
+
- area: skills; source: `skills/frontend-a11y/SKILL.md`; reason: secret-like-pattern-detected
|
|
21
|
+
- area: skills; source: `skills/security-review/SKILL.md`; reason: secret-like-pattern-detected
|
|
22
|
+
|
|
23
|
+
## Follow-up
|
|
24
|
+
|
|
25
|
+
The three skipped skill files remain intentionally excluded until a separate sanitized review/import follow-up approves safe public content. Raw skipped skill files were not imported.
|