@a-company/paradigm 6.3.4 → 6.6.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 (105) hide show
  1. package/dist/add-CBDFTWST.js +12 -0
  2. package/dist/chunk-5NAF6CKU.js +111 -0
  3. package/dist/{chunk-D34YFK4M.js → chunk-ERO4MJSH.js} +1 -1
  4. package/dist/{chunk-SRWROALW.js → chunk-KGUQPYCF.js} +32 -32
  5. package/dist/chunk-P344HV6Z.js +2 -0
  6. package/dist/index.js +1 -1
  7. package/dist/init-TLNRDZPX.js +2 -0
  8. package/dist/list-AXKTBXKJ.js +12 -0
  9. package/dist/mcp.js +1 -1
  10. package/dist/{quiz-WYIZJG5K.js → quiz-G56CUN45.js} +1 -1
  11. package/dist/{reindex-PJVOMN57.js → reindex-2YTQP2EO.js} +1 -1
  12. package/dist/serve-TJQ5BNKR.js +12 -0
  13. package/dist/server-QOCW5RU6.js +7 -0
  14. package/dist/{show-WVHAL4VU.js → show-MTPEQFXK.js} +3 -3
  15. package/dist/status-REA6HUXE.js +6 -0
  16. package/dist/sync-global-4NQPDRIS.js +2 -0
  17. package/dist/{tools-2XPMZZBT.js → tools-SKDKBLDK.js} +1 -1
  18. package/dist/university-content/notes/N-fieldnotes-pack-authoring.md +222 -0
  19. package/dist/university-content/pack.yaml +14 -0
  20. package/dist/university-content/paths/LP-fieldnotes-authoring.yaml +16 -0
  21. package/dist/university-ui/assets/index-BIQeax_b.js +87 -0
  22. package/dist/university-ui/assets/index-BIQeax_b.js.map +1 -0
  23. package/dist/university-ui/assets/index-C9zUgT5x.css +1 -0
  24. package/dist/university-ui/index.html +2 -2
  25. package/dist/validate-742XMB42.js +9 -0
  26. package/package.json +1 -1
  27. package/templates/agents/3d.agent +167 -0
  28. package/templates/agents/a11y.agent +120 -0
  29. package/templates/agents/advocate.agent +91 -0
  30. package/templates/agents/agent-evaluator.agent +179 -0
  31. package/templates/agents/ai.agent +129 -0
  32. package/templates/agents/analyst.agent +251 -0
  33. package/templates/agents/architect.agent +23 -0
  34. package/templates/agents/archivist.agent +97 -0
  35. package/templates/agents/audio.agent +102 -0
  36. package/templates/agents/builder.agent +141 -0
  37. package/templates/agents/cid.agent +188 -0
  38. package/templates/agents/community.agent +111 -0
  39. package/templates/agents/compliance.agent +231 -0
  40. package/templates/agents/content-intel.agent +155 -0
  41. package/templates/agents/copywriter.agent +154 -0
  42. package/templates/agents/creative.agent +205 -0
  43. package/templates/agents/data-model.agent +181 -0
  44. package/templates/agents/dataeng.agent +111 -0
  45. package/templates/agents/dba.agent +104 -0
  46. package/templates/agents/debugger.agent +92 -0
  47. package/templates/agents/designer.agent +241 -0
  48. package/templates/agents/devops.agent +166 -0
  49. package/templates/agents/documentor.agent +80 -0
  50. package/templates/agents/domain.agent +179 -0
  51. package/templates/agents/dx.agent +198 -0
  52. package/templates/agents/e2e.agent +152 -0
  53. package/templates/agents/educator.agent +181 -0
  54. package/templates/agents/ethicist.agent +106 -0
  55. package/templates/agents/finance.agent +130 -0
  56. package/templates/agents/forge.agent +217 -0
  57. package/templates/agents/forms.agent +181 -0
  58. package/templates/agents/ftux.agent +104 -0
  59. package/templates/agents/futurist.agent +104 -0
  60. package/templates/agents/gamedev.agent +175 -0
  61. package/templates/agents/geo.agent +179 -0
  62. package/templates/agents/i18n.agent +105 -0
  63. package/templates/agents/integrator.agent +167 -0
  64. package/templates/agents/legal.agent +112 -0
  65. package/templates/agents/mediator.agent +89 -0
  66. package/templates/agents/mentor.agent +106 -0
  67. package/templates/agents/mobile.agent +114 -0
  68. package/templates/agents/narrator.agent +96 -0
  69. package/templates/agents/network.agent +122 -0
  70. package/templates/agents/offline.agent +181 -0
  71. package/templates/agents/operations.agent +152 -0
  72. package/templates/agents/performance.agent +163 -0
  73. package/templates/agents/pm.agent +425 -0
  74. package/templates/agents/presenter.agent +105 -0
  75. package/templates/agents/product.agent +98 -0
  76. package/templates/agents/qa.agent +115 -0
  77. package/templates/agents/regulatory.agent +186 -0
  78. package/templates/agents/release.agent +108 -0
  79. package/templates/agents/report-gen.agent +184 -0
  80. package/templates/agents/researcher.agent +158 -0
  81. package/templates/agents/reverser.agent +121 -0
  82. package/templates/agents/reviewer.agent +105 -0
  83. package/templates/agents/sales.agent +159 -0
  84. package/templates/agents/scholar.agent +114 -0
  85. package/templates/agents/secretary.agent +196 -0
  86. package/templates/agents/security.agent +154 -0
  87. package/templates/agents/seo.agent +109 -0
  88. package/templates/agents/streaming.agent +138 -0
  89. package/templates/agents/swift.agent +119 -0
  90. package/templates/agents/sysadmin.agent +105 -0
  91. package/templates/agents/tester.agent +87 -0
  92. package/templates/agents/trainer.agent +121 -0
  93. package/templates/agents/translator.agent +115 -0
  94. package/dist/add-UOR4INIV.js +0 -8
  95. package/dist/chunk-EMGJWT7D.js +0 -111
  96. package/dist/chunk-Z5QW6USC.js +0 -2
  97. package/dist/init-M44SO65G.js +0 -2
  98. package/dist/list-CFHINXIS.js +0 -12
  99. package/dist/serve-U6C3R3NL.js +0 -12
  100. package/dist/server-7ZH2H7MQ.js +0 -7
  101. package/dist/status-S7Z5FVIE.js +0 -6
  102. package/dist/university-ui/assets/index-BlS8W3tC.js +0 -87
  103. package/dist/university-ui/assets/index-BlS8W3tC.js.map +0 -1
  104. package/dist/university-ui/assets/index-CMrxD7y5.css +0 -1
  105. package/dist/validate-XUQZTF3H.js +0 -9
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import {d,e,c,b,a as a$1}from'./chunk-WR6D3SC6.js';import {a}from'./chunk-LKAT7IAK.js';import'./chunk-5TAVYPOV.js';import*as t from'fs';import*as n from'path';import*as A from'os';import {fileURLToPath}from'url';var u=n.join(A.homedir(),".paradigm","agents"),v=".agent";function w(){let e=fileURLToPath(import.meta.url),r=n.dirname(e),i=[n.join(r,"..","templates","agents"),n.join(r,"..","..","..","templates","agents"),n.join(r,"..","..","templates","agents"),n.join(r,"..","..","..","templates","agents")];for(let s of i)if(t.existsSync(s))return s;return null}async function T(e$1={}){let r=a.command("agent-sync-global").start("Syncing bundled agents to global dir",{force:!!e$1.force,dryRun:!!e$1.dryRun}),i=w();if(!i){d("Could not locate bundled agent templates (templates/agents/)."),e(" This usually means a broken or partial install. Try reinstalling @a-company/paradigm."),r.error("Bundled templates dir not found");return}let s;try{s=t.readdirSync(i).filter(o=>o.endsWith(v)).sort();}catch(o){d(`Failed to read bundled templates: ${o.message}`),r.error("Read bundled dir failed");return}if(s.length===0){c("No bundled .agent files found to sync."),r.success("Nothing to sync (0 bundled)");return}let f=s.length,a$2=[],d$1=[],c$1=[];!e$1.dryRun&&!t.existsSync(u)&&t.mkdirSync(u,{recursive:true});for(let o of s){let g=o.replace(v,""),$=n.join(i,o),m=n.join(u,o),R=t.existsSync(m);if(R&&!e$1.force){d$1.push(g);continue}R?(e$1.dryRun||t.copyFileSync($,m),c$1.push(g)):(e$1.dryRun||t.copyFileSync($,m),a$2.push(g));}let b$1=e$1.dryRun?"Dry run \u2014 ":"";e$1.force?b(`${b$1}Added ${a$2.length}, overwrote ${c$1.length}, ${f} total bundled.`):b(`${b$1}Added ${a$2.length}, skipped ${d$1.length} (already present), ${f} total bundled.`),a$2.length>0&&(a$1(e$1.dryRun?" Would add:":" Added:"),e(" "+a$2.join(", "))),c$1.length>0&&(a$1(e$1.dryRun?" Would overwrite:":" Overwrote:"),e(" "+c$1.join(", "))),d$1.length>0&&e(` Skipped ${d$1.length} already-present agent${d$1.length===1?"":"s"} (use --force to overwrite).`),e$1.dryRun||e(` Destination: ${u}`),r.success(`sync-global: added ${a$2.length}, overwrote ${c$1.length}, skipped ${d$1.length} of ${f}`);}export{T as agentSyncGlobalCommand};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- export{h as registerTools}from'./chunk-SRWROALW.js';import'./chunk-EMGJWT7D.js';import'./chunk-4UJ4NIEQ.js';import'./chunk-4N56FRNE.js';import'./chunk-Q527BPUF.js';import'./chunk-KLBH26PA.js';import'./chunk-ARLB6YYW.js';import'./chunk-SU5F5D4I.js';import'./chunk-JNSJVCTU.js';import'./chunk-XROULIQN.js';import'./chunk-ZUAUFZRJ.js';import'./chunk-3KVVC4WV.js';import'./chunk-M4UMM6DC.js';import'./chunk-GRZQIKST.js';import'./chunk-KAFQA7HV.js';import'./chunk-6QXBXZF6.js';import'./chunk-EK4ZRIFJ.js';import'./chunk-LAYBUKMB.js';import'./chunk-DVZWCXB6.js';import'./chunk-QGZRM6ZB.js';import'./chunk-K7X3Z3GL.js';import'./chunk-5TAVYPOV.js';
2
+ export{h as registerTools}from'./chunk-KGUQPYCF.js';import'./chunk-5NAF6CKU.js';import'./chunk-4UJ4NIEQ.js';import'./chunk-4N56FRNE.js';import'./chunk-Q527BPUF.js';import'./chunk-KLBH26PA.js';import'./chunk-ARLB6YYW.js';import'./chunk-SU5F5D4I.js';import'./chunk-JNSJVCTU.js';import'./chunk-XROULIQN.js';import'./chunk-ZUAUFZRJ.js';import'./chunk-3KVVC4WV.js';import'./chunk-M4UMM6DC.js';import'./chunk-GRZQIKST.js';import'./chunk-KAFQA7HV.js';import'./chunk-6QXBXZF6.js';import'./chunk-EK4ZRIFJ.js';import'./chunk-LAYBUKMB.js';import'./chunk-DVZWCXB6.js';import'./chunk-QGZRM6ZB.js';import'./chunk-K7X3Z3GL.js';import'./chunk-5TAVYPOV.js';
@@ -0,0 +1,222 @@
1
+ ---
2
+ id: N-fieldnotes-pack-authoring
3
+ title: "Authoring your own University pack"
4
+ type: note
5
+ author: paradigm
6
+ created: '2026-05-18'
7
+ updated: '2026-05-18'
8
+ section: field-notes
9
+ tags:
10
+ - university
11
+ - authoring
12
+ - electives
13
+ symbols: []
14
+ difficulty: beginner
15
+ estimatedMinutes: 6
16
+ summary: "How to scaffold and ship a project pack for your codebase."
17
+ ---
18
+
19
+ ## What a pack is
20
+
21
+ A **pack** is a self-contained University tenant: one `pack.yaml` manifest plus a `content/` directory of notes, policies, quizzes, and learning paths. Paradigm's pack loader discovers packs at startup and serves them through a single UI at `localhost:3839`. Each pack has its own id, version, branding, and (since v6.5) sections.
22
+
23
+ You author a pack when you have learning material that belongs **next to your codebase** — onboarding guides for new engineers, security policies the team must acknowledge, scenario-based quizzes that mirror your real incident playbook. The content lives in git, gets reviewed in PRs, and is served to humans and AI agents alike.
24
+
25
+ ## The four pack types
26
+
27
+ Paradigm recognizes four kinds of packs, distinguished by their `tenant_kind` and discovery path:
28
+
29
+ | Kind | `tenant_kind` | Discovered at | Use when |
30
+ |------|---------------|---------------|----------|
31
+ | First-party | `first-party` | `node_modules/@a-company/university/` | You're contributing back to Paradigm itself |
32
+ | Project | `project` | `.paradigm/university/` | Your team's onboarding, policies, scenarios |
33
+ | Discipline | `project` | `.paradigm/university/<name>/` | Splitting authoring by team — design, security, infra |
34
+ | External (npm) | `external` | Direct deps with `paradigm.universityPack` pointer | Publishing reusable packs to npm |
35
+
36
+ The default mode — running `paradigm university` from any Paradigm project — surfaces the first-party Paradigm pack. Adding `.paradigm/university/pack.yaml` to your repo creates a project pack that appears alongside it.
37
+
38
+ ## Scaffolding a project pack
39
+
40
+ The fastest way to start is:
41
+
42
+ ```bash
43
+ paradigm university init
44
+ ```
45
+
46
+ That writes `.paradigm/university/pack.yaml` with a sensible default manifest derived from your `.paradigm/config.yaml` project name. Re-run with `--force` to overwrite. To scaffold a discipline sub-pack:
47
+
48
+ ```bash
49
+ paradigm university init --discipline design
50
+ ```
51
+
52
+ After init, the CLI prints a tip about sections (new in v6.5) — read it before authoring your first batch of entries.
53
+
54
+ ## A minimum viable `pack.yaml`
55
+
56
+ ```yaml
57
+ id: acme-onboarding
58
+ name: "Acme Onboarding"
59
+ version: "0.1.0"
60
+ schema_version: "1"
61
+ tenant_kind: project
62
+ description: "Engineering onboarding for Acme."
63
+ ```
64
+
65
+ Required fields: `id`, `name`, `version`, `schema_version`, `tenant_kind`. Use kebab-case for the id. Everything else — branding, theme, sections, disciplines, dependencies, content_types — is optional.
66
+
67
+ For the full field reference (including the v6.5 `sections:` block), see [`docs/guides/university.md`](../../../../docs/guides/university.md) §4.5 and §7.
68
+
69
+ ## The four content types
70
+
71
+ Every pack speaks the same content vocabulary:
72
+
73
+ ### Notes (`N-<slug>.md`)
74
+
75
+ Markdown with YAML frontmatter. Stored at `content/notes/`. Use notes for architecture docs, onboarding pages, deep-dive explainers. Frontmatter must include `id`, `title`, `type: note`. Optional but recommended: `tags`, `difficulty`, `summary`, `section`, `order`.
76
+
77
+ ### Policies (`P-<slug>.md`)
78
+
79
+ Same shape as notes (`type: policy`), stored at `content/policies/`. Use policies for review checklists, security gates, anything the team must acknowledge. Policies can carry `policy_version` and `policy_hash` for audit provenance (see the guide §6).
80
+
81
+ ### Quizzes (`Q-<slug>.yaml`)
82
+
83
+ YAML at `content/quizzes/`. A quiz is an array of questions, each with labeled `choices` (A, B, C, …), a `correct` answer, and an optional `explanation`. Default pass threshold is 0.7. PLSAT-style scenarios — shared `scenario:` preamble + multiple `variants` per `slot` — are supported when you need exam-grade content.
84
+
85
+ ```yaml
86
+ id: Q-onboarding-portal
87
+ title: "Portal basics"
88
+ type: quiz
89
+ passThreshold: 0.7
90
+ questions:
91
+ - id: q1
92
+ prompt: "Which symbol marks an authorization check?"
93
+ choices:
94
+ A: "#"
95
+ B: "^"
96
+ C: "!"
97
+ D: "$"
98
+ correct: B
99
+ explanation: "Gates use the caret prefix."
100
+ ```
101
+
102
+ ### Learning paths (`LP-<slug>.yaml`)
103
+
104
+ YAML at `content/paths/`. A path is an ordered (or unordered) list of steps, each referencing another entry by id. Paths are the canonical ordering for `track`-style sections — students traverse a path step by step, and the UI tracks progress per-step.
105
+
106
+ ```yaml
107
+ id: LP-onboarding
108
+ title: "Acme onboarding track"
109
+ ordered: true
110
+ section: courses
111
+ steps:
112
+ - content: N-acme-welcome
113
+ required: true
114
+ - content: Q-onboarding-portal
115
+ required: true
116
+ passRequired: true
117
+ ```
118
+
119
+ ## Sections (v6.5)
120
+
121
+ Sections group entries into named tabs in the UI. A pack with one section behaves exactly like a v6.4 pack (single-section packs collapse the section nav). A pack with two or more sections shows a tab strip and lets the author pick a presentation `style` per section:
122
+
123
+ | Style | What it renders | Good for |
124
+ |-------|----------------|----------|
125
+ | `track` | Ordered learning paths with progress rings | Courses, certifications |
126
+ | `index` | Alphabetical or `order:`-sorted entry list | Field notes, references |
127
+ | `chronological` | Newest-first by `created:` date | Changelogs, release notes |
128
+ | `featured` | Editor-curated highlights | Landing page, "start here" shelf |
129
+
130
+ Declare sections in `pack.yaml`:
131
+
132
+ ```yaml
133
+ sections:
134
+ - id: courses
135
+ name: Courses
136
+ order: 0
137
+ style: track
138
+ default: true
139
+ description: Structured learning paths.
140
+ - id: field-notes
141
+ name: Field Notes
142
+ order: 1
143
+ style: index
144
+ description: Nice-to-knows and electives.
145
+ ```
146
+
147
+ Then opt entries in via frontmatter:
148
+
149
+ ```yaml
150
+ ---
151
+ id: N-deployment-runbook
152
+ section: field-notes
153
+ order: 10
154
+ ---
155
+ ```
156
+
157
+ Entries without a `section:` land in the section marked `default: true` (or the first section if none is marked). At v6.5 the UI renders `track` natively and falls back to `track` rendering for the other styles — `index`, `chronological`, and `featured` ship their dedicated renderers as content demand grows.
158
+
159
+ ## Cross-pack references
160
+
161
+ To reference content from another pack, qualify the id with `<pack-id>:`:
162
+
163
+ ```yaml
164
+ prerequisites:
165
+ - paradigm:N-symbol-basics
166
+ - paradigm:Q-portal-fundamentals
167
+ ```
168
+
169
+ Bare ids resolve against the current pack context (the `--pack` flag, the MCP `pack` argument, or the active project pack). The validator rejects bare cross-pack refs — inter-pack wiring is always explicit so packs don't silently shadow each other.
170
+
171
+ You can also declare hard dependencies in `pack.yaml`:
172
+
173
+ ```yaml
174
+ dependencies:
175
+ - pack: paradigm
176
+ min_version: "6.0.0"
177
+ kind: required
178
+ ```
179
+
180
+ ## Validate before you commit
181
+
182
+ ```bash
183
+ paradigm university validate
184
+ ```
185
+
186
+ Catches the integrity issues that bite later: broken path steps, bad quiz answer keys, missing titles, duplicate section ids, two sections marked default, entries referencing sections that don't exist. Run it in CI if your team authors content regularly.
187
+
188
+ ## Publishing as an npm package
189
+
190
+ To share a pack across projects, publish the pack directory as a normal npm package:
191
+
192
+ ```json
193
+ {
194
+ "name": "@acme/onboarding-pack",
195
+ "version": "1.0.0",
196
+ "files": ["pack.yaml", "content/"]
197
+ }
198
+ ```
199
+
200
+ Then consuming projects add a pointer in their `package.json`:
201
+
202
+ ```json
203
+ {
204
+ "dependencies": {
205
+ "@acme/onboarding-pack": "^1.0.0"
206
+ },
207
+ "paradigm": {
208
+ "universityPack": "node_modules/@acme/onboarding-pack/"
209
+ }
210
+ }
211
+ ```
212
+
213
+ Paradigm's pack loader scans **direct dependencies only** for the `paradigm.universityPack` pointer — transitive deps are ignored to keep discovery predictable.
214
+
215
+ ## Where to go next
216
+
217
+ - [`docs/guides/university.md`](../../../../docs/guides/university.md) §4.5 for the canonical sections reference.
218
+ - [`docs/guides/university.md`](../../../../docs/guides/university.md) §7 for the full `pack.yaml` field list.
219
+ - `paradigm university add` for scaffolding individual entries (`note`, `policy`, `quiz`, `path`).
220
+ - `paradigm university validate` whenever you've moved entries between sections or renamed an id.
221
+
222
+ The pack format is stable. The four content types and the cross-pack reference syntax landed in v5.39.0; sections landed in v6.5.0; everything else has been additive.
@@ -0,0 +1,14 @@
1
+ id: paradigm-university
2
+ version: 6.5.0
3
+ sections:
4
+ - id: courses
5
+ name: Courses
6
+ order: 0
7
+ style: track
8
+ default: true
9
+ description: Structured Paradigm learning paths
10
+ - id: field-notes
11
+ name: Field Notes
12
+ order: 1
13
+ style: index
14
+ description: Nice-to-knows about Paradigm's nuanced features
@@ -0,0 +1,16 @@
1
+ id: LP-fieldnotes-authoring
2
+ title: "Authoring your own University pack"
3
+ description: A single-entry Field Notes path covering how to scaffold, structure, and ship a project pack for your codebase.
4
+ author: paradigm
5
+ created: '2026-05-18'
6
+ updated: '2026-05-18'
7
+ section: field-notes
8
+ tags:
9
+ - university
10
+ - authoring
11
+ - electives
12
+ ordered: false
13
+ category: paradigm-core
14
+ steps:
15
+ - content: N-fieldnotes-pack-authoring
16
+ required: true