agentboot 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/.github/ISSUE_TEMPLATE/persona-request.md +62 -0
- package/.github/ISSUE_TEMPLATE/quality-feedback.md +67 -0
- package/.github/workflows/cla.yml +25 -0
- package/.github/workflows/validate.yml +49 -0
- package/.idea/agentboot.iml +9 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/CLA.md +98 -0
- package/CLAUDE.md +230 -0
- package/CONTRIBUTING.md +168 -0
- package/LICENSE +191 -0
- package/NOTICE +4 -0
- package/PERSONAS.md +156 -0
- package/README.md +172 -0
- package/agentboot.config.json +207 -0
- package/bin/agentboot.js +17 -0
- package/core/gotchas/README.md +35 -0
- package/core/instructions/baseline.instructions.md +133 -0
- package/core/instructions/security.instructions.md +186 -0
- package/core/personas/code-reviewer/SKILL.md +175 -0
- package/core/personas/code-reviewer/persona.config.json +11 -0
- package/core/personas/security-reviewer/SKILL.md +233 -0
- package/core/personas/security-reviewer/persona.config.json +11 -0
- package/core/personas/test-data-expert/SKILL.md +234 -0
- package/core/personas/test-data-expert/persona.config.json +10 -0
- package/core/personas/test-generator/SKILL.md +262 -0
- package/core/personas/test-generator/persona.config.json +10 -0
- package/core/traits/audit-trail.md +182 -0
- package/core/traits/confidence-signaling.md +172 -0
- package/core/traits/critical-thinking.md +129 -0
- package/core/traits/schema-awareness.md +132 -0
- package/core/traits/source-citation.md +174 -0
- package/core/traits/structured-output.md +199 -0
- package/docs/ci-cd-automation.md +548 -0
- package/docs/claude-code-reference/README.md +21 -0
- package/docs/claude-code-reference/agentboot-coverage.md +484 -0
- package/docs/claude-code-reference/feature-inventory.md +906 -0
- package/docs/cli-commands-audit.md +112 -0
- package/docs/cli-design.md +924 -0
- package/docs/concepts.md +1117 -0
- package/docs/config-schema-audit.md +121 -0
- package/docs/configuration.md +645 -0
- package/docs/delivery-methods.md +758 -0
- package/docs/developer-onboarding.md +342 -0
- package/docs/extending.md +448 -0
- package/docs/getting-started.md +298 -0
- package/docs/knowledge-layer.md +464 -0
- package/docs/marketplace.md +822 -0
- package/docs/org-connection.md +570 -0
- package/docs/plans/architecture.md +2429 -0
- package/docs/plans/design.md +2018 -0
- package/docs/plans/prd.md +1862 -0
- package/docs/plans/stack-rank.md +261 -0
- package/docs/plans/technical-spec.md +2755 -0
- package/docs/privacy-and-safety.md +807 -0
- package/docs/prompt-optimization.md +1071 -0
- package/docs/test-plan.md +972 -0
- package/docs/third-party-ecosystem.md +496 -0
- package/domains/compliance-template/README.md +173 -0
- package/domains/compliance-template/traits/compliance-aware.md +228 -0
- package/examples/enterprise/agentboot.config.json +184 -0
- package/examples/minimal/agentboot.config.json +46 -0
- package/package.json +63 -0
- package/repos.json +1 -0
- package/scripts/cli.ts +1069 -0
- package/scripts/compile.ts +1000 -0
- package/scripts/dev-sync.ts +149 -0
- package/scripts/lib/config.ts +137 -0
- package/scripts/lib/frontmatter.ts +61 -0
- package/scripts/sync.ts +687 -0
- package/scripts/validate.ts +421 -0
- package/tests/REGRESSION-PLAN.md +705 -0
- package/tests/TEST-PLAN.md +111 -0
- package/tests/cli.test.ts +705 -0
- package/tests/pipeline.test.ts +608 -0
- package/tests/validate.test.ts +278 -0
- package/tsconfig.json +62 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Persona request
|
|
3
|
+
about: Propose a new persona for AgentBoot core
|
|
4
|
+
title: "persona: [name here]"
|
|
5
|
+
labels: persona-request
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Persona name
|
|
10
|
+
|
|
11
|
+
<!-- What would you call this persona? This becomes the display name in PERSONAS.md. -->
|
|
12
|
+
|
|
13
|
+
## Invocation
|
|
14
|
+
|
|
15
|
+
<!-- What slash command would invoke it? e.g., /review-architecture, /audit-deps -->
|
|
16
|
+
|
|
17
|
+
## Use case
|
|
18
|
+
|
|
19
|
+
<!-- What problem does this persona solve? Describe the situation: what does a developer
|
|
20
|
+
want to do, what is painful about doing it today, and how does this persona make
|
|
21
|
+
it better? Be concrete. -->
|
|
22
|
+
|
|
23
|
+
## What traits would it compose?
|
|
24
|
+
|
|
25
|
+
<!-- List the core traits this persona would use, with weights where applicable.
|
|
26
|
+
Example:
|
|
27
|
+
- critical-thinking: HIGH
|
|
28
|
+
- structured-output: true
|
|
29
|
+
- source-citation: true
|
|
30
|
+
|
|
31
|
+
If this persona requires a new trait that does not exist yet, explain what that
|
|
32
|
+
trait would do and why existing traits are insufficient. -->
|
|
33
|
+
|
|
34
|
+
## Example invocation
|
|
35
|
+
|
|
36
|
+
<!-- Show a realistic prompt a developer would give this persona and describe
|
|
37
|
+
the output they would expect. This is the primary way maintainers evaluate
|
|
38
|
+
whether the persona is scoped correctly and fills a real gap. -->
|
|
39
|
+
|
|
40
|
+
**Input:**
|
|
41
|
+
```
|
|
42
|
+
[paste a realistic prompt here]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Expected output structure:**
|
|
46
|
+
```
|
|
47
|
+
[describe or sketch the expected output here]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Why core, not a domain extension?
|
|
51
|
+
|
|
52
|
+
<!-- AgentBoot core contains only generic, domain-agnostic personas that are useful
|
|
53
|
+
to any engineering team regardless of industry. Explain why this persona fits
|
|
54
|
+
that bar.
|
|
55
|
+
|
|
56
|
+
If it is specific to a compliance regime, a framework, an industry, or an internal
|
|
57
|
+
standard, it should be a domain extension instead. See docs/extending.md. -->
|
|
58
|
+
|
|
59
|
+
## Additional context
|
|
60
|
+
|
|
61
|
+
<!-- Anything else that would help maintainers evaluate this proposal. Links to
|
|
62
|
+
prior art, related issues, examples from other tools, etc. -->
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Quality feedback
|
|
3
|
+
about: Report bad or unexpected output from a persona
|
|
4
|
+
title: "quality: [persona-id] [brief description]"
|
|
5
|
+
labels: quality-feedback
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Persona name
|
|
10
|
+
|
|
11
|
+
<!-- Which persona produced the bad output? e.g., code-reviewer, security-reviewer -->
|
|
12
|
+
|
|
13
|
+
## What you asked it to do
|
|
14
|
+
|
|
15
|
+
<!-- Describe what you asked the persona to do. Include the exact prompt or command
|
|
16
|
+
if you can. If the input is large, include the most relevant portion. -->
|
|
17
|
+
|
|
18
|
+
**Prompt / invocation:**
|
|
19
|
+
```
|
|
20
|
+
[paste your prompt here]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Input (if relevant):**
|
|
24
|
+
```
|
|
25
|
+
[paste the code, file, or context you gave it, or a representative excerpt]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## What it actually did
|
|
29
|
+
|
|
30
|
+
<!-- Describe what the persona produced. If the output was long, include the most
|
|
31
|
+
relevant portion — the finding that was wrong, the section that was missing,
|
|
32
|
+
the format that was broken, etc. -->
|
|
33
|
+
|
|
34
|
+
**Actual output:**
|
|
35
|
+
```
|
|
36
|
+
[paste the relevant portion of the output here]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## What you expected
|
|
40
|
+
|
|
41
|
+
<!-- Describe what you expected it to do instead. Be specific. "Better output" is
|
|
42
|
+
not actionable. "The persona should have flagged the missing null check on line 14
|
|
43
|
+
but instead flagged a style preference" is actionable. -->
|
|
44
|
+
|
|
45
|
+
## Claude Code version
|
|
46
|
+
|
|
47
|
+
<!-- Run `claude --version` and paste the output here. -->
|
|
48
|
+
|
|
49
|
+
## Trait weight or config (if known)
|
|
50
|
+
|
|
51
|
+
<!-- If you know which trait weight was active for this persona (HIGH / MEDIUM / LOW),
|
|
52
|
+
include it here. If you modified any agentboot.config.json settings that might
|
|
53
|
+
be relevant, include those too. -->
|
|
54
|
+
|
|
55
|
+
## Is this a regression?
|
|
56
|
+
|
|
57
|
+
<!-- Did this persona work correctly before and then stop working? If so, when did you
|
|
58
|
+
last see it working correctly, and do you know of any changes (to Claude Code,
|
|
59
|
+
to AgentBoot, to the persona file) that happened around that time? -->
|
|
60
|
+
|
|
61
|
+
- [ ] Yes, this worked correctly before
|
|
62
|
+
- [ ] No, this is a first-time deployment and it has never worked correctly
|
|
63
|
+
- [ ] Unknown
|
|
64
|
+
|
|
65
|
+
## Additional context
|
|
66
|
+
|
|
67
|
+
<!-- Anything else that would help reproduce or understand the issue. -->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: CLA Assistant
|
|
2
|
+
on:
|
|
3
|
+
issue_comment:
|
|
4
|
+
types: [created]
|
|
5
|
+
pull_request_target:
|
|
6
|
+
types: [opened, synchronize, reopened]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
actions: write
|
|
10
|
+
contents: write
|
|
11
|
+
pull-requests: write
|
|
12
|
+
statuses: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
cla:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: contributor-assistant/github-action@v2
|
|
19
|
+
env:
|
|
20
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
21
|
+
with:
|
|
22
|
+
path-to-signatures: "signatures/cla.json"
|
|
23
|
+
path-to-document: "https://github.com/agentboot-dev/agentboot/blob/main/CLA.md"
|
|
24
|
+
branch: "main"
|
|
25
|
+
allowlist: "saavyone,dependabot[bot]"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Validate
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
validate:
|
|
11
|
+
name: Validate and build
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Set up Node.js
|
|
19
|
+
uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: "18"
|
|
22
|
+
cache: "npm"
|
|
23
|
+
|
|
24
|
+
- name: Install dependencies
|
|
25
|
+
run: npm install
|
|
26
|
+
|
|
27
|
+
- name: Validate personas and traits
|
|
28
|
+
run: npm run validate
|
|
29
|
+
# Exits 1 if any persona is missing required frontmatter fields,
|
|
30
|
+
# any trait referenced in a persona does not exist, or
|
|
31
|
+
# agentboot.config.json fails schema validation.
|
|
32
|
+
|
|
33
|
+
- name: Build
|
|
34
|
+
run: npm run build
|
|
35
|
+
# Resolves all trait compositions and produces compiled output in .build/.
|
|
36
|
+
# Fails if any persona cannot be compiled (missing trait, malformed SKILL.md, etc.).
|
|
37
|
+
|
|
38
|
+
- name: Check PERSONAS.md is up to date
|
|
39
|
+
run: |
|
|
40
|
+
# The build step regenerates PERSONAS.md from the compiled persona set.
|
|
41
|
+
# If the committed PERSONAS.md differs from the regenerated version,
|
|
42
|
+
# this step fails. Run `npm run build` locally and commit the updated
|
|
43
|
+
# PERSONAS.md to fix this check.
|
|
44
|
+
if ! git diff --exit-code PERSONAS.md; then
|
|
45
|
+
echo ""
|
|
46
|
+
echo "PERSONAS.md is out of date."
|
|
47
|
+
echo "Run 'npm run build' locally and commit the updated PERSONAS.md."
|
|
48
|
+
exit 1
|
|
49
|
+
fi
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module type="JAVA_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
4
|
+
<exclude-output />
|
|
5
|
+
<content url="file://$MODULE_DIR$" />
|
|
6
|
+
<orderEntry type="inheritedJdk" />
|
|
7
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
8
|
+
</component>
|
|
9
|
+
</module>
|
package/.idea/misc.xml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="ProjectModuleManager">
|
|
4
|
+
<modules>
|
|
5
|
+
<module fileurl="file://$PROJECT_DIR$/.idea/agentboot.iml" filepath="$PROJECT_DIR$/.idea/agentboot.iml" />
|
|
6
|
+
</modules>
|
|
7
|
+
</component>
|
|
8
|
+
</project>
|
package/.idea/vcs.xml
ADDED
package/CLA.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# AgentBoot Contributor License Agreement
|
|
2
|
+
|
|
3
|
+
**Version 1.0 — Effective 2026-03-21**
|
|
4
|
+
|
|
5
|
+
Thank you for your interest in contributing to AgentBoot. This Contributor License
|
|
6
|
+
Agreement ("Agreement") defines the terms under which you ("You") submit
|
|
7
|
+
Contributions to the AgentBoot project, owned and maintained by Michel Saavedra
|
|
8
|
+
("Maintainer").
|
|
9
|
+
|
|
10
|
+
You accept this Agreement by commenting "I have read the CLA Document and I hereby
|
|
11
|
+
sign the CLA" on your first pull request. This is a one-time process.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Definitions
|
|
16
|
+
|
|
17
|
+
**"Contribution"** means any original work of authorship, including any modifications
|
|
18
|
+
or additions to existing work, that You intentionally submit to the AgentBoot project
|
|
19
|
+
for inclusion. "Submit" means any form of communication sent to the project — including
|
|
20
|
+
pull requests, issues, comments, and commits — but excluding communications
|
|
21
|
+
conspicuously marked "Not a Contribution."
|
|
22
|
+
|
|
23
|
+
**"Project"** means the AgentBoot software and associated documentation maintained at
|
|
24
|
+
https://github.com/agentboot-dev/agentboot and any successor repositories.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Grant of Copyright License
|
|
29
|
+
|
|
30
|
+
You hereby grant to the Maintainer and to recipients of software distributed by the
|
|
31
|
+
Maintainer a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
32
|
+
copyright license to reproduce, prepare derivative works of, publicly display, publicly
|
|
33
|
+
perform, sublicense, and distribute Your Contributions and any derivative works thereof.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 3. Grant of Patent License
|
|
38
|
+
|
|
39
|
+
You hereby grant to the Maintainer and to recipients of software distributed by the
|
|
40
|
+
Maintainer a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
41
|
+
patent license to make, have made, use, offer to sell, sell, import, and otherwise
|
|
42
|
+
transfer Your Contributions, where such license applies only to those patent claims
|
|
43
|
+
licensable by You that are necessarily infringed by Your Contributions alone or by
|
|
44
|
+
combination of Your Contributions with the Project.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 4. Right to Relicense
|
|
49
|
+
|
|
50
|
+
You acknowledge that the Maintainer may, at their sole discretion, relicense the
|
|
51
|
+
Project (including Your Contributions) under different license terms in the future.
|
|
52
|
+
This right is granted to ensure the long-term sustainability and evolution of the
|
|
53
|
+
Project. Any relicensing will not revoke the rights already granted to recipients
|
|
54
|
+
under the license in effect at the time they received the software.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 5. Your Representations
|
|
59
|
+
|
|
60
|
+
You represent that:
|
|
61
|
+
|
|
62
|
+
(a) You are legally entitled to grant the above licenses. If your employer has rights
|
|
63
|
+
to intellectual property that you create, you represent that you have received
|
|
64
|
+
permission to make Contributions on behalf of that employer, or that your employer
|
|
65
|
+
has waived such rights for Contributions to this Project.
|
|
66
|
+
|
|
67
|
+
(b) Each Contribution is Your original creation. If any part of Your Contribution is
|
|
68
|
+
based on or derived from existing work, You will clearly identify that work and its
|
|
69
|
+
license in the Contribution.
|
|
70
|
+
|
|
71
|
+
(c) You are not aware of any third-party claims, liens, or encumbrances on the
|
|
72
|
+
Contribution.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 6. No Obligation
|
|
77
|
+
|
|
78
|
+
You understand that the decision to include Your Contribution in the Project is
|
|
79
|
+
entirely at the discretion of the Maintainer. This Agreement does not create any
|
|
80
|
+
obligation for the Maintainer to use, merge, or distribute Your Contribution.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 7. No Warranty
|
|
85
|
+
|
|
86
|
+
Your Contributions are provided on an "AS IS" basis, without warranties or conditions
|
|
87
|
+
of any kind, either express or implied.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 8. Governing Law
|
|
92
|
+
|
|
93
|
+
This Agreement shall be governed by and construed in accordance with the laws of the
|
|
94
|
+
State of Florida, United States, without regard to its conflict of law provisions.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
*This CLA is adapted from the Apache Individual Contributor License Agreement v2.0.*
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install # Install dependencies (required before anything else)
|
|
9
|
+
npm run validate # Run pre-build validation checks
|
|
10
|
+
npm run build # Compile traits into persona output files
|
|
11
|
+
npm run sync # Distribute compiled output to target repos
|
|
12
|
+
npm run clean # Remove dist/
|
|
13
|
+
npm run full-build # clean → validate → build → dev-sync pipeline
|
|
14
|
+
npm run dev-sync # Copy dist/ to local repo for dogfooding (gitignored)
|
|
15
|
+
npm run lint # TypeScript type checking + lint
|
|
16
|
+
npm run test # Run vitest
|
|
17
|
+
npm run test:watch # Watch mode testing
|
|
18
|
+
npm run typecheck # TypeScript type checking (tsc --noEmit)
|
|
19
|
+
npm run cli # Run the agentboot CLI (e.g., npm run cli -- build)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The CLI (`scripts/cli.ts`) wraps all pipeline commands with proper argument parsing:
|
|
23
|
+
```bash
|
|
24
|
+
npx tsx scripts/cli.ts build [-c config]
|
|
25
|
+
npx tsx scripts/cli.ts validate [--strict]
|
|
26
|
+
npx tsx scripts/cli.ts sync [--repos-file path] [--dry-run]
|
|
27
|
+
npx tsx scripts/cli.ts full-build
|
|
28
|
+
npx tsx scripts/cli.ts --help
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Run a single test file: `npx vitest run <path-to-test-file>`
|
|
32
|
+
|
|
33
|
+
## Architecture
|
|
34
|
+
|
|
35
|
+
AgentBoot is a **build tool** (not a runtime framework) that compiles agentic personas for distribution to target repos. The pipeline is: validate → compile → sync.
|
|
36
|
+
|
|
37
|
+
### Core Concepts
|
|
38
|
+
|
|
39
|
+
**Traits** (`core/traits/`) are reusable behavioral building blocks (e.g., `critical-thinking.md`, `source-citation.md`). They are composed at build time — never at runtime. (Trait weight configurations are a Phase 2 feature.)
|
|
40
|
+
|
|
41
|
+
**Personas** (`core/personas/{name}/`) each contain:
|
|
42
|
+
- `SKILL.md` — the agent definition with `<!-- traits:start -->` / `<!-- traits:end -->` injection markers
|
|
43
|
+
- `persona.config.json` — build metadata specifying which traits to inject
|
|
44
|
+
|
|
45
|
+
**Always-on Instructions** (`core/instructions/`) are universal guardrails distributed to every repo regardless of persona configuration.
|
|
46
|
+
|
|
47
|
+
**Gotchas** (`core/gotchas/`) are path-scoped knowledge rules that encode battle-tested operational knowledge. They use `paths:` frontmatter to activate only for matching files and are compiled into `.claude/rules/` during build.
|
|
48
|
+
|
|
49
|
+
### Build Pipeline
|
|
50
|
+
|
|
51
|
+
1. **`scripts/validate.ts`** — 4 pre-build checks: persona existence, trait references, SKILL.md frontmatter, secret scanning
|
|
52
|
+
2. **`scripts/compile.ts`** — loads `agentboot.config.json`, resolves trait references from `persona.config.json`, and emits **one self-contained folder per platform** under `dist/`:
|
|
53
|
+
- **`dist/skill/`** — cross-platform SKILL.md (agentskills.io format, traits inlined) + PERSONAS.md
|
|
54
|
+
- **`dist/claude/`** — CC-native: agents, skills, rules, traits, CLAUDE.md (`@imports`), settings.json, .mcp.json
|
|
55
|
+
- **`dist/copilot/`** — per-persona copilot-instructions.md fragments + instructions
|
|
56
|
+
3. **`scripts/sync.ts`** — reads `repos.json`, reads from `dist/{platform}/`, merges scopes (core → group → team, team wins on conflicts), writes to target repos in platform-native locations, generates `.agentboot-manifest.json` with file hashes
|
|
57
|
+
4. **`scripts/dev-sync.ts`** — copies `dist/{platform}/core/` to platform-native locations in the current repo for local dogfooding (gitignored output only, not the production sync)
|
|
58
|
+
|
|
59
|
+
Each `dist/{platform}/` folder is self-contained. Scope hierarchy (core → groups → teams) is preserved within each platform folder. Duplication across platforms is intentional (generated files are cattle not pets). `full-build` runs dev-sync (not sync) to load compiled personas locally.
|
|
60
|
+
|
|
61
|
+
### Scope Hierarchy
|
|
62
|
+
|
|
63
|
+
Four-level hierarchy: Org → Group → Team → Repo. More specific scopes layer on top of general ones. For optional behaviors, team overrides group overrides core. For mandatory behaviors, inheritance is top-down (org wins). Scope merging happens in `sync.ts`. For public repos, repo-specific enrichments live in the hub under `public-repos/{repo}/` (not committed to the public repo) — see "Public repo pattern" in concepts.md.
|
|
64
|
+
|
|
65
|
+
### Output Structure
|
|
66
|
+
|
|
67
|
+
Compiled artifacts go to `dist/`, organized by platform first, then by scope:
|
|
68
|
+
- `dist/skill/` — cross-platform SKILL.md (agentskills.io format, traits inlined) + persona.config.json + PERSONAS.md
|
|
69
|
+
- `dist/claude/` — CC-native: agents, skills, rules, traits, CLAUDE.md (@imports), settings.json, .mcp.json, PERSONAS.md
|
|
70
|
+
- `dist/copilot/` — per-persona copilot-instructions.md fragments + instructions + PERSONAS.md
|
|
71
|
+
|
|
72
|
+
Cursor and Gemini output are planned for Phase 2.
|
|
73
|
+
|
|
74
|
+
Within each platform folder, scope hierarchy is preserved:
|
|
75
|
+
- `dist/{platform}/core/` — org-level personas
|
|
76
|
+
- `dist/{platform}/groups/{group}/` — group-level overrides
|
|
77
|
+
- `dist/{platform}/teams/{group}/{team}/` — team-level overrides
|
|
78
|
+
|
|
79
|
+
### Distribution Model (Hub-and-Spoke)
|
|
80
|
+
|
|
81
|
+
This repo acts as the **hub**. Target repos listed in `repos.json` are **spokes**. One-way flow: hub publishes compiled artifacts → spokes receive them. Spokes don't hold source of truth.
|
|
82
|
+
|
|
83
|
+
### Configuration
|
|
84
|
+
|
|
85
|
+
Everything is driven by `agentboot.config.json` (JSONC format). Key sections: `org`, `groups`, `personas.enabled`, `traits.enabled`, `instructions.enabled`, `sync.repos`, `sync.dryRun`.
|
|
86
|
+
|
|
87
|
+
### Key Design Concepts
|
|
88
|
+
|
|
89
|
+
All design ideas are documented in `docs/concepts.md`:
|
|
90
|
+
|
|
91
|
+
**Core (Tier 1):** agentskills.io format, build-time trait composition, scope hierarchy, hub-and-spoke distribution, multi-format output. (Trait weight system — HIGH/MEDIUM/LOW — is designed but not yet implemented.)
|
|
92
|
+
|
|
93
|
+
**High Value (Tier 2):** per-persona extensions, gotchas rules (path-scoped battle-tested knowledge), compliance hooks (3-layer defense-in-depth), ADR governance (permanent exception lifecycle), behavioral tests, self-improvement reflections (A→B→C), reviewer selection config.
|
|
94
|
+
|
|
95
|
+
**V2+ (Tier 3):** HARD/SOFT guardrail elevation, team champions, SME discoverability fragment, MCP-first integrations, structured telemetry (GELF/NDJSON), persona arbitrator, autonomy progression (Advisory→Auto-approve→Autonomous), two-channel MDM distribution.
|
|
96
|
+
|
|
97
|
+
**Anti-patterns:** overcommitting V1 scope, plain text logs, runtime trait inclusion, vendor-locked formats, forking base personas, deep inheritance hierarchies.
|
|
98
|
+
|
|
99
|
+
See `docs/concepts.md` for full design rationale.
|
|
100
|
+
|
|
101
|
+
### Delivery Methods
|
|
102
|
+
|
|
103
|
+
`docs/delivery-methods.md` analyzes 8 delivery channels. Key decisions:
|
|
104
|
+
- **CC Plugin** is the primary delivery method (native marketplace, force-enable via managed settings)
|
|
105
|
+
- **CLI** (`agentboot`) is the build tool, not the end-user tool
|
|
106
|
+
- **Managed settings** carry HARD guardrails only (compliance, not convenience)
|
|
107
|
+
- **MCP server** is the cross-platform bridge for multi-agent orgs
|
|
108
|
+
- **Cowork** extends reach to non-engineers via the same plugin format
|
|
109
|
+
- `docs/org-connection.md` — how developers get their org's customizations (three-path strategy: managed settings, repo sync, self-service)
|
|
110
|
+
|
|
111
|
+
### Privacy & Psychological Safety
|
|
112
|
+
|
|
113
|
+
`docs/privacy-and-safety.md` — the prompt confidentiality model:
|
|
114
|
+
- **Three tiers:** Private (raw prompts, never leave machine) → Privileged (LLM analysis via Claude API, developer approves sharing) → Organizational (persona output metrics, anonymized)
|
|
115
|
+
- Raw prompts are NOT collected, transmitted, or exfiltrated. This is a design invariant, not a config option.
|
|
116
|
+
- `/insights` sends transcripts to Claude API (same trust boundary already in use), extracts patterns not transcripts, developer sees first and approves sharing
|
|
117
|
+
- Org dashboard shows persona effectiveness (rephrase rates, false positives, cost by team) — never individual prompts
|
|
118
|
+
- Escalation exception for genuinely harmful content (exfiltration, guardrail circumvention, harassment) — flag category only, not transcript
|
|
119
|
+
- High rephrase rates are framed as persona quality problems, not developer intelligence problems
|
|
120
|
+
|
|
121
|
+
### Prompt & Cost Optimization
|
|
122
|
+
|
|
123
|
+
`docs/prompt-optimization.md` — 8 sections covering the full optimization lifecycle:
|
|
124
|
+
- `agentboot lint` — static prompt analysis (token budgets, vague language, conflicts, security)
|
|
125
|
+
- Token budget system — per-persona context cost calculation and enforcement
|
|
126
|
+
- Model selection matrix — Haiku/Sonnet/Opus guidance per persona type
|
|
127
|
+
- `agentboot cost-estimate` — projected monthly cost per persona across the org
|
|
128
|
+
- Effectiveness metrics — efficiency (tokens, cost, latency), quality (accuracy, false positive rate), business (adoption, bug escapes)
|
|
129
|
+
- Prompt style guide — imperative voice, 20-rule max, falsifiable instructions, examples over descriptions
|
|
130
|
+
- `agentboot test` — deterministic (free) + behavioral (LLM) + regression (snapshot) testing
|
|
131
|
+
- Continuous optimization loop — weekly review process with metrics-driven prompt improvements
|
|
132
|
+
|
|
133
|
+
### CLI Design
|
|
134
|
+
|
|
135
|
+
`docs/cli-design.md` — standalone binary via `brew install agentboot`:
|
|
136
|
+
- `agentboot setup` — interactive wizard that detects role/tools/org and executes the right setup
|
|
137
|
+
- `agentboot build/sync/export/publish` — build pipeline for platform teams
|
|
138
|
+
- `agentboot connect` — developer self-service org connection
|
|
139
|
+
- `agentboot doctor/status` — diagnostics and deployment dashboard
|
|
140
|
+
- `agentboot add` — scaffold personas, traits, domains, gotchas, hooks; `add prompt` ingests raw prompts
|
|
141
|
+
- `agentboot discover` — scan repos/machines for existing agentic content, overlap analysis, migration plan
|
|
142
|
+
- Distributed via brew/apt/choco (zero runtime deps), npm/npx as fallback
|
|
143
|
+
|
|
144
|
+
### Knowledge Layer
|
|
145
|
+
|
|
146
|
+
`docs/knowledge-layer.md` — three-stage progression from flat files to RAG:
|
|
147
|
+
- **Stage 1 (Flat files):** Current default. Markdown gotchas/traits with path scoping. Works for 5-50 items.
|
|
148
|
+
- **Stage 2 (Structured store):** SQLite index generated from frontmatter. MCP server exposes tag/category queries. Handles 50-500 items. Zero new infrastructure.
|
|
149
|
+
- **Stage 3 (Vector/RAG):** Embeddings + semantic retrieval via sqlite-vss. Personas find knowledge by relevance, not keywords. "This code is similar to an incident last year." Handles 500+ items.
|
|
150
|
+
- MCP interface stays stable across all three stages — personas don't change when the backing store upgrades.
|
|
151
|
+
- Killer use case: context-aware review that brings organizational memory (incidents, ADRs, patterns) to every PR.
|
|
152
|
+
- Most orgs stay at Stage 1 forever. Stage 2 is the sweet spot for mature orgs. Stage 3 is for compliance-heavy industries.
|
|
153
|
+
|
|
154
|
+
### Test Plan
|
|
155
|
+
|
|
156
|
+
`docs/test-plan.md` — 6-layer test pyramid:
|
|
157
|
+
- **Unit/Schema** (free, every commit): config validation, frontmatter, trait composition, lint rules
|
|
158
|
+
- **Integration** (free, every commit): full build pipeline, plugin export, sync, uninstall
|
|
159
|
+
- **Behavioral** (~$5/PR): `claude -p` with known-buggy code, assert on findings patterns, 2-of-3 flake tolerance
|
|
160
|
+
- **Snapshot/Regression** (~$5, persona changes): compare output across versions, detect regressions
|
|
161
|
+
- **LLM-as-Judge** (~$20, major changes): Opus evaluates persona quality on 5 dimensions
|
|
162
|
+
- **Human Review** (monthly): `agentboot review` with guided questions on curated samples, 15min/persona
|
|
163
|
+
- Agents test agents, but humans always decide. Automation removes burden, not judgment.
|
|
164
|
+
- Mutation testing validates that tests catch the regressions they should.
|
|
165
|
+
- Monthly automated testing budget: ~$165 for 4 personas (less than 1 hour of manual review)
|
|
166
|
+
|
|
167
|
+
### Developer Onboarding
|
|
168
|
+
|
|
169
|
+
`docs/developer-onboarding.md` — lightweight agentic training assist (not an LMS):
|
|
170
|
+
- First-session welcome (~80 tokens in CLAUDE.md — try these personas now)
|
|
171
|
+
- `/learn` skill — contextual help ("how do I review one file?", "what do severity levels mean?")
|
|
172
|
+
- Curated external resource links (Anthropic docs, community guides) — AgentBoot curates, doesn't build content
|
|
173
|
+
- Contextual tips in persona output (first-invocation hints, vague-prompt nudges, rate-limited, disable-able)
|
|
174
|
+
- Generated onboarding checklist from org's actual config
|
|
175
|
+
- Org-authored tips (`onboarding/` dir in personas repo — institutional knowledge transfer)
|
|
176
|
+
|
|
177
|
+
### Marketplace & Community Sharing
|
|
178
|
+
|
|
179
|
+
`docs/marketplace.md` — three-layer marketplace (Core → Verified → Community):
|
|
180
|
+
- Traits are the most shareable unit (context-free behavioral blocks)
|
|
181
|
+
- Gotchas rules are technology-specific, not org-specific (universally useful)
|
|
182
|
+
- Domain layers package traits + personas + gotchas for compliance regimes (healthcare, fintech, govtech)
|
|
183
|
+
- SuperClaude partnership: shared trait format standard + cross-listing in marketplaces
|
|
184
|
+
- Contribution model with review process for Verified tier
|
|
185
|
+
- CC plugin packaging: each domain/category = one installable plugin
|
|
186
|
+
- Monetization paths documented for V2+ (premium domains, managed marketplace, consulting, certification)
|
|
187
|
+
|
|
188
|
+
### Third-Party Ecosystem
|
|
189
|
+
|
|
190
|
+
`docs/third-party-ecosystem.md` — 5 key tools analyzed (SuperClaude, ArcKit, spec-kit, Trail of Bits config + skills):
|
|
191
|
+
- AgentBoot is the governance/distribution layer, not competing with content tools
|
|
192
|
+
- All ideas developed independently; 3P tools are prior art (parallel evolution, not derivation)
|
|
193
|
+
- Marketplace curation (point to upstream) is the recommended partnership model over bundling
|
|
194
|
+
- Apache 2.0 license for core; domain layers carry their own licenses
|
|
195
|
+
- ACKNOWLEDGMENTS.md with prior art / complementary / integrated / includes categories
|
|
196
|
+
- CC-BY-SA-4.0 (ToB skills) requires ShareAlike — cannot be relicensed as MIT
|
|
197
|
+
|
|
198
|
+
### CI/CD & Automation
|
|
199
|
+
|
|
200
|
+
`docs/ci-cd-automation.md` covers 5 CI methods:
|
|
201
|
+
- `claude -p --agent --output-format json` is the primary CI interface (cost-bounded, schema-enforced)
|
|
202
|
+
- Hook scripts for deterministic compliance gates (free, <1s, no LLM)
|
|
203
|
+
- `agentboot validate/build/sync` for the personas repo pipeline
|
|
204
|
+
- MCP server for non-CC CI environments
|
|
205
|
+
- Reusable GitHub Actions workflow for lowest-friction integration
|
|
206
|
+
|
|
207
|
+
### Claude Code Reference
|
|
208
|
+
|
|
209
|
+
`docs/claude-code-reference/` is the living knowledge base of every CC feature:
|
|
210
|
+
- `feature-inventory.md` — exhaustive reference (35 tools, 25 hook events, all settings, all frontmatter fields)
|
|
211
|
+
- `agentboot-coverage.md` — gap analysis with 24 prioritized action items
|
|
212
|
+
|
|
213
|
+
### Planning Documents
|
|
214
|
+
|
|
215
|
+
`docs/plans/` contains the formal planning docs synthesized from all design work:
|
|
216
|
+
- `prd.md` (2,090 lines) — problem, users, vision, 52 feature requirements across 9 subsystems, 8 non-goals, success metrics, 32 open questions, 40+ term glossary
|
|
217
|
+
- `architecture.md` (2,658 lines) — system context, 8 component diagrams, data schemas, scope merge semantics, build pipeline, distribution, security, cross-platform, 15 architectural decisions (AD-01–AD-15), 20 open questions
|
|
218
|
+
- `technical-spec.md` (2,943 lines) — all 21 CLI commands specified, build system algorithms, persona.config.json schema (newly designed), 15 lint rules, canonical test YAML format, telemetry schema, MCP tools, plugin packaging, 20 open questions
|
|
219
|
+
- `design.md` (2,213 lines) — UX per user segment, privacy deep dive (13 subsections), marketplace/community, prompt lifecycle, onboarding flows, uninstall, brand, licensing, 31 open questions
|
|
220
|
+
|
|
221
|
+
Total: ~9,900 lines of planning documentation with ~103 open questions to resolve.
|
|
222
|
+
|
|
223
|
+
## Known Gaps
|
|
224
|
+
|
|
225
|
+
- No cursor or gemini output formats (Phase 2)
|
|
226
|
+
- Trait weight system (HIGH/MEDIUM/LOW) not yet implemented — traits are included or not (Phase 2)
|
|
227
|
+
- No runtime config schema validation (zod planned but not wired in) (Phase 2)
|
|
228
|
+
- Extension path `./personas` in config warns but doesn't block
|
|
229
|
+
- `repos.json` is empty — production sync path untested in real workflow (uses dev-sync for dogfooding)
|
|
230
|
+
- This repo is the build tool, not a personas hub — orgs create a separate `personas` repo that uses AgentBoot as the build tool
|