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.
Files changed (78) hide show
  1. package/.github/ISSUE_TEMPLATE/persona-request.md +62 -0
  2. package/.github/ISSUE_TEMPLATE/quality-feedback.md +67 -0
  3. package/.github/workflows/cla.yml +25 -0
  4. package/.github/workflows/validate.yml +49 -0
  5. package/.idea/agentboot.iml +9 -0
  6. package/.idea/misc.xml +6 -0
  7. package/.idea/modules.xml +8 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/CLA.md +98 -0
  10. package/CLAUDE.md +230 -0
  11. package/CONTRIBUTING.md +168 -0
  12. package/LICENSE +191 -0
  13. package/NOTICE +4 -0
  14. package/PERSONAS.md +156 -0
  15. package/README.md +172 -0
  16. package/agentboot.config.json +207 -0
  17. package/bin/agentboot.js +17 -0
  18. package/core/gotchas/README.md +35 -0
  19. package/core/instructions/baseline.instructions.md +133 -0
  20. package/core/instructions/security.instructions.md +186 -0
  21. package/core/personas/code-reviewer/SKILL.md +175 -0
  22. package/core/personas/code-reviewer/persona.config.json +11 -0
  23. package/core/personas/security-reviewer/SKILL.md +233 -0
  24. package/core/personas/security-reviewer/persona.config.json +11 -0
  25. package/core/personas/test-data-expert/SKILL.md +234 -0
  26. package/core/personas/test-data-expert/persona.config.json +10 -0
  27. package/core/personas/test-generator/SKILL.md +262 -0
  28. package/core/personas/test-generator/persona.config.json +10 -0
  29. package/core/traits/audit-trail.md +182 -0
  30. package/core/traits/confidence-signaling.md +172 -0
  31. package/core/traits/critical-thinking.md +129 -0
  32. package/core/traits/schema-awareness.md +132 -0
  33. package/core/traits/source-citation.md +174 -0
  34. package/core/traits/structured-output.md +199 -0
  35. package/docs/ci-cd-automation.md +548 -0
  36. package/docs/claude-code-reference/README.md +21 -0
  37. package/docs/claude-code-reference/agentboot-coverage.md +484 -0
  38. package/docs/claude-code-reference/feature-inventory.md +906 -0
  39. package/docs/cli-commands-audit.md +112 -0
  40. package/docs/cli-design.md +924 -0
  41. package/docs/concepts.md +1117 -0
  42. package/docs/config-schema-audit.md +121 -0
  43. package/docs/configuration.md +645 -0
  44. package/docs/delivery-methods.md +758 -0
  45. package/docs/developer-onboarding.md +342 -0
  46. package/docs/extending.md +448 -0
  47. package/docs/getting-started.md +298 -0
  48. package/docs/knowledge-layer.md +464 -0
  49. package/docs/marketplace.md +822 -0
  50. package/docs/org-connection.md +570 -0
  51. package/docs/plans/architecture.md +2429 -0
  52. package/docs/plans/design.md +2018 -0
  53. package/docs/plans/prd.md +1862 -0
  54. package/docs/plans/stack-rank.md +261 -0
  55. package/docs/plans/technical-spec.md +2755 -0
  56. package/docs/privacy-and-safety.md +807 -0
  57. package/docs/prompt-optimization.md +1071 -0
  58. package/docs/test-plan.md +972 -0
  59. package/docs/third-party-ecosystem.md +496 -0
  60. package/domains/compliance-template/README.md +173 -0
  61. package/domains/compliance-template/traits/compliance-aware.md +228 -0
  62. package/examples/enterprise/agentboot.config.json +184 -0
  63. package/examples/minimal/agentboot.config.json +46 -0
  64. package/package.json +63 -0
  65. package/repos.json +1 -0
  66. package/scripts/cli.ts +1069 -0
  67. package/scripts/compile.ts +1000 -0
  68. package/scripts/dev-sync.ts +149 -0
  69. package/scripts/lib/config.ts +137 -0
  70. package/scripts/lib/frontmatter.ts +61 -0
  71. package/scripts/sync.ts +687 -0
  72. package/scripts/validate.ts +421 -0
  73. package/tests/REGRESSION-PLAN.md +705 -0
  74. package/tests/TEST-PLAN.md +111 -0
  75. package/tests/cli.test.ts +705 -0
  76. package/tests/pipeline.test.ts +608 -0
  77. package/tests/validate.test.ts +278 -0
  78. package/tsconfig.json +62 -0
@@ -0,0 +1,121 @@
1
+ # Config Schema Audit
2
+
3
+ Pre-release audit of `agentboot.config.json` and `persona.config.json` schemas. Fields are hard to rename after adoption.
4
+
5
+ **Date:** 2026-03-21
6
+ **Status:** Pre-release review
7
+
8
+ ---
9
+
10
+ ## agentboot.config.json
11
+
12
+ ### Root Fields
13
+
14
+ | Field | Type | Used | Status |
15
+ |-------|------|------|--------|
16
+ | `org` | string | Yes | OK — required, no change |
17
+ | `orgDisplayName` | string | Yes | OK — defaults to `org` |
18
+ | `groups` | Record | Yes | See issue #1 |
19
+ | `personas` | object | Yes | See issues #2, #3 |
20
+ | `traits` | object | Yes | OK |
21
+ | `instructions` | object | Yes | OK |
22
+ | `output` | object | Yes | See issue #5 |
23
+ | `sync` | object | Yes | See issues #6, #7 |
24
+ | `claude` | object | Yes | See issue #8 |
25
+ | `validation` | object | Yes | OK |
26
+
27
+ ### Issues Found
28
+
29
+ #### CRITICAL — Fix before public release
30
+
31
+ **1. `groups[].label` is defined but never used**
32
+ `GroupConfig.label` exists in the TypeScript interface but no code reads it. Dead field in the schema.
33
+ - Recommendation: Remove from interface and example config, or implement display in PERSONAS.md output.
34
+
35
+ **2. `personas.extend` — unclear name**
36
+ Does it extend, override, or supplement core personas? The behavior is "load additional personas from this path" but the name suggests inheritance.
37
+ - Recommendation: Rename to `personas.customDir` or `personas.additionalDir`.
38
+
39
+ **3. `personas.outputFormats` not validated**
40
+ Accepts any string but only recognizes `"skill"`, `"claude"`, `"copilot"`. Invalid values are silently ignored.
41
+ - Recommendation: Validate against allowed set. Error on unknown formats.
42
+
43
+ #### HIGH — Fix before 1.0
44
+
45
+ **4. `repos[].platform` allows unimplemented values**
46
+ `"cursor"` and `"gemini"` are accepted in repos.json but compile.ts doesn't generate output for them.
47
+ - Recommendation: Restrict to implemented platforms or emit a clear warning.
48
+
49
+ **5. `output.tokenBudget.perPersona` — unclear intent**
50
+ Warns when exceeded but doesn't block. Is this informational or a hard limit?
51
+ - Recommendation: Document design intent. If informational, rename to `output.tokenBudget.warnAt`. If hard limit, enforce it.
52
+
53
+ **6. `sync.pr.*` — implemented but commented out in example config**
54
+ PR mode works in code but users can't discover it from the config file.
55
+ - Recommendation: Uncomment the PR section with a note that it's optional.
56
+
57
+ **7. `sync.pr.titleTemplate` not validated**
58
+ `branchPrefix` has regex validation but `titleTemplate` doesn't. Inconsistent security posture.
59
+ - Recommendation: Add validation for `titleTemplate` to match `branchPrefix`.
60
+
61
+ #### MEDIUM — Polish
62
+
63
+ **8. `claude.hooks`, `claude.permissions`, `claude.mcpServers` — Phase 2 features exposed**
64
+ These generate settings.json and .mcp.json but CC integration is incomplete. Users may expect full functionality.
65
+ - Recommendation: Add clear comments marking these as experimental.
66
+
67
+ **9. `output.tokenBudget.perPersona` — deeply nested for one field**
68
+ `output.tokenBudget.perPersona` is 3 levels deep for a single number.
69
+ - Recommendation: Keep for now (anticipate adding `perTrait`, `total` later), but document why.
70
+
71
+ **10. Default values not documented in example config**
72
+ `repos[].platform` defaults to `"claude"`, `sync.pr.branchPrefix` defaults to `"agentboot/sync-"`, etc.
73
+ - Recommendation: Add comments documenting defaults in the example config file.
74
+
75
+ ---
76
+
77
+ ## persona.config.json
78
+
79
+ | Field | Type | Required | Status |
80
+ |-------|------|----------|--------|
81
+ | `name` | string | Yes | OK |
82
+ | `description` | string | Yes | OK |
83
+ | `invocation` | string | No | OK — defaults to `/{dir-name}` |
84
+ | `model` | string | No | OK |
85
+ | `permissionMode` | string | No | OK |
86
+ | `traits` | string[] | No | OK |
87
+ | `groups.{name}.traits` | string[] | No | OK — trait inheritance well-designed |
88
+ | `teams.{name}.traits` | string[] | No | OK — dedup works correctly |
89
+
90
+ **No issues found.** The persona config schema is clean and well-designed. Trait inheritance (core + group + team with dedup) works as expected.
91
+
92
+ ---
93
+
94
+ ## repos.json
95
+
96
+ | Field | Type | Required | Status |
97
+ |-------|------|----------|--------|
98
+ | `path` | string | Yes | OK |
99
+ | `platform` | string | No | See issue #4 |
100
+ | `group` | string | No | OK — validated against config |
101
+ | `team` | string | No | OK — validated against group |
102
+ | `label` | string | No | OK |
103
+
104
+ ---
105
+
106
+ ## Before Public Release Checklist
107
+
108
+ - [ ] Remove `groups[].label` or implement it
109
+ - [ ] Rename `personas.extend` to `personas.customDir`
110
+ - [ ] Validate `personas.outputFormats` against allowed set
111
+ - [ ] Restrict `repos[].platform` to implemented platforms
112
+ - [ ] Clarify `tokenBudget` design intent
113
+ - [ ] Uncomment `sync.pr` in example config (with "optional" note)
114
+ - [ ] Add default value comments to example config
115
+ - [ ] Mark `claude.*` fields as experimental in example config
116
+
117
+ ---
118
+
119
+ ## Recommendation
120
+
121
+ The schema is ~85% production-ready. The critical issue is `groups.label` (dead code) and `personas.extend` (unclear name). Everything else is polish. No fundamental restructuring needed — the hierarchy (org → groups → teams, traits → personas → output) is sound.