@event4u/agent-config 4.2.0 → 4.5.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/.agent-src/commands/agents/user/init.md +7 -13
- package/.agent-src/commands/agents/user/show.md +4 -4
- package/.agent-src/commands/post-as/me.md +6 -6
- package/.agent-src/contexts/execution/autonomy-mechanics.md +1 -1
- package/.agent-src/contexts/execution/cheap-question-mechanics.md +4 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +126 -66
- package/config/discovery/packs.yml +9 -1
- package/config/discovery/workspaces.yml +14 -1
- package/dist/cli/agent-config.js +14 -4
- package/dist/cli/agent-config.js.map +1 -1
- package/dist/cli/commands/uiServe.js +28 -12
- package/dist/cli/commands/uiServe.js.map +1 -1
- package/dist/cli/initRouting.js +101 -0
- package/dist/cli/initRouting.js.map +1 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +51 -8
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +25 -4
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +4 -4
- package/dist/install/selectedTools.js +52 -0
- package/dist/install/selectedTools.js.map +1 -0
- package/dist/install/toolDetection.js +104 -0
- package/dist/install/toolDetection.js.map +1 -0
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/server/app.js +36 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/ping.js +17 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/wizard.js +240 -28
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/serverInfo.js +54 -0
- package/dist/server/serverInfo.js.map +1 -0
- package/dist/shared/userMd/formAdapter.js +1 -5
- package/dist/shared/userMd/formAdapter.js.map +1 -1
- package/dist/shared/userMd/schema.js +2 -1
- package/dist/shared/userMd/schema.js.map +1 -1
- package/dist/ui/assets/index-J0-0d7RC.js +40 -0
- package/dist/ui/assets/index-J0-0d7RC.js.map +1 -0
- package/dist/ui/assets/index-ZiC8PbdW.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/archive/CHANGELOG-pre-4.0.0.md +80 -0
- package/docs/contracts/agent-user-schema.md +1 -3
- package/docs/contracts/discovery-manifest.schema.json +3 -1
- package/docs/contracts/gui-wizard.md +113 -18
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +27 -0
- package/docs/decisions/ADR-021-deployment-shape.md +2 -2
- package/docs/deploy/connector-setup.md +2 -2
- package/docs/deploy/policy-cookbook.md +2 -2
- package/docs/examples/agent-user.example.md +0 -1
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/build_discovery_manifest.py +4 -0
- package/scripts/condense_memory.py +8 -2
- package/scripts/install.py +73 -0
- package/scripts/lint_discovery_vocabulary.py +8 -0
- package/dist/ui/assets/index-BDAhhpDV.js +0 -40
- package/dist/ui/assets/index-BDAhhpDV.js.map +0 -1
- package/dist/ui/assets/index-BXZILUxe.css +0 -1
|
@@ -21,11 +21,12 @@ import { existsSync } from 'node:fs';
|
|
|
21
21
|
import { resolve } from 'node:path';
|
|
22
22
|
import { pickFreePort, DEFAULT_PORT_RANGE } from '../../server/port.js';
|
|
23
23
|
import { mintToken } from '../../server/token.js';
|
|
24
|
+
import { writeServerInfo, clearServerInfo } from '../../server/serverInfo.js';
|
|
24
25
|
import { createApp } from '../../server/app.js';
|
|
25
26
|
import { resolveWriteRoot, ensureWriteRoot } from '../../server/writeRoot.js';
|
|
26
27
|
import { PACKAGE_ROOT } from '../paths.js';
|
|
27
28
|
import { logger } from '../log/logger.js';
|
|
28
|
-
function isHeadless() {
|
|
29
|
+
export function isHeadless() {
|
|
29
30
|
if (process.env['SSH_CONNECTION'])
|
|
30
31
|
return true;
|
|
31
32
|
if (process.platform === 'linux' && !process.env['DISPLAY'])
|
|
@@ -70,6 +71,21 @@ export async function runUiServe(opts) {
|
|
|
70
71
|
if (legacyReadRoot !== null) {
|
|
71
72
|
logger.info(`legacy-read fallback: ${legacyReadRoot}`);
|
|
72
73
|
}
|
|
74
|
+
let shuttingDown = false;
|
|
75
|
+
const gracefulExit = async (reason) => {
|
|
76
|
+
if (shuttingDown)
|
|
77
|
+
return;
|
|
78
|
+
shuttingDown = true;
|
|
79
|
+
logger.info(`${reason} — shutting down`);
|
|
80
|
+
if (!dryRun)
|
|
81
|
+
clearServerInfo();
|
|
82
|
+
try {
|
|
83
|
+
await app.close();
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
73
89
|
const app = await createApp({
|
|
74
90
|
writeRoot,
|
|
75
91
|
legacyReadRoot,
|
|
@@ -80,6 +96,10 @@ export async function runUiServe(opts) {
|
|
|
80
96
|
expectedPort: port,
|
|
81
97
|
dryRun,
|
|
82
98
|
extendedSteps: opts.extendedSteps === true,
|
|
99
|
+
// Shut the server down when the browser that drives it goes away.
|
|
100
|
+
// The SPA's pagehide beacon hits POST /api/v1/shutdown for a prompt
|
|
101
|
+
// exit; the idle backstop covers crashes where the beacon is lost.
|
|
102
|
+
idleShutdown: { onIdle: () => { void gracefulExit('browser closed'); } },
|
|
83
103
|
...(opts.initialStep !== undefined ? { initialStep: opts.initialStep } : {}),
|
|
84
104
|
...(opts.wizardMode !== undefined ? { wizardMode: opts.wizardMode } : {}),
|
|
85
105
|
});
|
|
@@ -94,6 +114,11 @@ export async function runUiServe(opts) {
|
|
|
94
114
|
? `#${opts.initialRoute.startsWith('/') ? opts.initialRoute : `/${opts.initialRoute}`}`
|
|
95
115
|
: '';
|
|
96
116
|
const url = `http://127.0.0.1:${port}/?token=${token}${hash}`;
|
|
117
|
+
// Record this instance so a later `init` can terminate it before
|
|
118
|
+
// starting fresh (browser-lifecycle § kill-stale). Skipped in dry-run.
|
|
119
|
+
if (!dryRun) {
|
|
120
|
+
writeServerInfo({ pid: process.pid, port, url, startedAt: new Date().toISOString() });
|
|
121
|
+
}
|
|
97
122
|
// road-to-unified-setup § B4 — WIZARD_READY stdout contract.
|
|
98
123
|
// Emit the marker on stdout (plus the URL on the next line) so the
|
|
99
124
|
// bash bootstrap (`scripts/bootstrap.sh`) can detect "Fastify bound"
|
|
@@ -110,17 +135,8 @@ export async function runUiServe(opts) {
|
|
|
110
135
|
if (opts.open !== false && !isHeadless()) {
|
|
111
136
|
await openBrowser(url);
|
|
112
137
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
await app.close();
|
|
117
|
-
}
|
|
118
|
-
finally {
|
|
119
|
-
process.exit(0);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
process.on('SIGINT', () => { void stop('SIGINT'); });
|
|
123
|
-
process.on('SIGTERM', () => { void stop('SIGTERM'); });
|
|
138
|
+
process.on('SIGINT', () => { void gracefulExit('received SIGINT'); });
|
|
139
|
+
process.on('SIGTERM', () => { void gracefulExit('received SIGTERM'); });
|
|
124
140
|
return new Promise(() => {
|
|
125
141
|
// Resolves when the process exits via signal handler above.
|
|
126
142
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiServe.js","sourceRoot":"","sources":["../../../src/cli/commands/uiServe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAwC1C,
|
|
1
|
+
{"version":3,"file":"uiServe.js","sourceRoot":"","sources":["../../../src/cli/commands/uiServe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `init` install-front-end routing (road-to-single-install-source-of-truth
|
|
3
|
+
* § Phase 4 follow-up).
|
|
4
|
+
*
|
|
5
|
+
* `init` is the consumer install entry point. When the browser wizard can
|
|
6
|
+
* actually be used, `init` opens it and lets it drive the whole install via
|
|
7
|
+
* `/api/v1/wizard/apply` → `scripts/install.py --apply-payload` — no CLI
|
|
8
|
+
* tool-picker, one installer. Otherwise `init` falls back to the bash CLI
|
|
9
|
+
* install. These pure helpers make that decision (and the GUI option mapping)
|
|
10
|
+
* unit-testable, separate from the self-executing CLI entry point.
|
|
11
|
+
*/
|
|
12
|
+
import { isHeadless } from './commands/uiServe.js';
|
|
13
|
+
/**
|
|
14
|
+
* Whether `init` should open the browser wizard instead of the non-interactive
|
|
15
|
+
* CLI install. Returns false (→ delegate to the bash CLI install) when ANY of
|
|
16
|
+
* these hold:
|
|
17
|
+
* - CI env set, or AGENT_CONFIG_NO_UI set
|
|
18
|
+
* - stdin/stdout is not a TTY (piped / curl|bash)
|
|
19
|
+
* - headless host (SSH / Linux without DISPLAY)
|
|
20
|
+
* - a CLI-mode flag is present (--no-ui / --tools / --ai / --yes / --quiet /
|
|
21
|
+
* --dry-run / --minimal / --settings-only / --list-tools) — the caller
|
|
22
|
+
* already knows what to install and doesn't want the picker.
|
|
23
|
+
*
|
|
24
|
+
* `rest` is argv without the leading `init` token.
|
|
25
|
+
*/
|
|
26
|
+
export function shouldInitLaunchGui(rest) {
|
|
27
|
+
const ci = (process.env['CI'] ?? '').trim();
|
|
28
|
+
if (ci && ci !== '0')
|
|
29
|
+
return false;
|
|
30
|
+
const envNoUi = (process.env['AGENT_CONFIG_NO_UI'] ?? '').trim();
|
|
31
|
+
if (envNoUi && envNoUi !== '0')
|
|
32
|
+
return false;
|
|
33
|
+
if (process.stdin.isTTY !== true || process.stdout.isTTY !== true)
|
|
34
|
+
return false;
|
|
35
|
+
if (isHeadless())
|
|
36
|
+
return false;
|
|
37
|
+
const cliSignals = new Set([
|
|
38
|
+
'--no-ui', '--tools', '--ai', '--yes', '-y', '--quiet', '-q',
|
|
39
|
+
'--dry-run', '--minimal', '--settings-only', '--list-tools',
|
|
40
|
+
]);
|
|
41
|
+
for (const arg of rest) {
|
|
42
|
+
const flag = arg.split('=', 1)[0];
|
|
43
|
+
if (flag !== undefined && cliSignals.has(flag))
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Translate the GUI-compatible subset of `init` flags into `runUiServe`
|
|
50
|
+
* options. Lands on the install wizard (Step 1 / AI tools). `rest` is argv
|
|
51
|
+
* without the leading `init` token.
|
|
52
|
+
*/
|
|
53
|
+
export function buildInitGuiOptions(rest) {
|
|
54
|
+
const forwarded = {
|
|
55
|
+
initialRoute: '/wizard',
|
|
56
|
+
extendedSteps: true,
|
|
57
|
+
initialStep: 0,
|
|
58
|
+
wizardMode: 'install',
|
|
59
|
+
};
|
|
60
|
+
for (let i = 0; i < rest.length; i += 1) {
|
|
61
|
+
const arg = rest[i];
|
|
62
|
+
if (arg === undefined)
|
|
63
|
+
continue;
|
|
64
|
+
if (arg === '--no-open') {
|
|
65
|
+
forwarded.open = false;
|
|
66
|
+
}
|
|
67
|
+
else if (arg === '--allow-headless') {
|
|
68
|
+
forwarded.allowHeadless = true;
|
|
69
|
+
}
|
|
70
|
+
else if (arg === '--port' || arg === '--project-root' || arg === '--ui-dist') {
|
|
71
|
+
const value = rest[i + 1];
|
|
72
|
+
if (value !== undefined) {
|
|
73
|
+
i += 1;
|
|
74
|
+
if (arg === '--port') {
|
|
75
|
+
const n = Number.parseInt(value, 10);
|
|
76
|
+
if (!Number.isNaN(n))
|
|
77
|
+
forwarded.port = n;
|
|
78
|
+
}
|
|
79
|
+
else if (arg === '--project-root') {
|
|
80
|
+
forwarded.projectRoot = value;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
forwarded.uiDist = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else if (arg.startsWith('--port=')) {
|
|
88
|
+
const n = Number.parseInt(arg.slice('--port='.length), 10);
|
|
89
|
+
if (!Number.isNaN(n))
|
|
90
|
+
forwarded.port = n;
|
|
91
|
+
}
|
|
92
|
+
else if (arg.startsWith('--project-root=')) {
|
|
93
|
+
forwarded.projectRoot = arg.slice('--project-root='.length);
|
|
94
|
+
}
|
|
95
|
+
else if (arg.startsWith('--ui-dist=')) {
|
|
96
|
+
forwarded.uiDist = arg.slice('--ui-dist='.length);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return forwarded;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=initRouting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initRouting.js","sourceRoot":"","sources":["../../src/cli/initRouting.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,7 +178,7 @@
|
|
|
178
178
|
},
|
|
179
179
|
{
|
|
180
180
|
"category": "command",
|
|
181
|
-
"checksum": "sha256:
|
|
181
|
+
"checksum": "sha256:1ecf985427fdeb131b6c225ff0dcd312e2128eb04b362dd4ec4e163dd18fbd34",
|
|
182
182
|
"install": {
|
|
183
183
|
"default": true,
|
|
184
184
|
"removable": false
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
"category": "command",
|
|
225
|
-
"checksum": "sha256:
|
|
225
|
+
"checksum": "sha256:a3f8805c14628e580e2b0fc6b9e6bef7ac1c73adc49cf0fa6579bcd542023ebf",
|
|
226
226
|
"install": {
|
|
227
227
|
"default": true,
|
|
228
228
|
"removable": false
|
|
@@ -2224,7 +2224,7 @@
|
|
|
2224
2224
|
},
|
|
2225
2225
|
{
|
|
2226
2226
|
"category": "command",
|
|
2227
|
-
"checksum": "sha256:
|
|
2227
|
+
"checksum": "sha256:e2900a33630c49e88369acf982858598d8d81deb2e321e9d4599657a9f770955",
|
|
2228
2228
|
"install": {
|
|
2229
2229
|
"default": true,
|
|
2230
2230
|
"removable": false
|
|
@@ -9430,7 +9430,7 @@
|
|
|
9430
9430
|
]
|
|
9431
9431
|
}
|
|
9432
9432
|
],
|
|
9433
|
-
"checksum": "sha256:
|
|
9433
|
+
"checksum": "sha256:eb7494e53428947d792e0377cb59e043457819ad3fff0b7ff6bc1011134be766",
|
|
9434
9434
|
"documented_unassigned": [
|
|
9435
9435
|
{
|
|
9436
9436
|
"category": "template",
|
|
@@ -9543,7 +9543,7 @@
|
|
|
9543
9543
|
"reason": "scaffold for new SKILL.md authoring"
|
|
9544
9544
|
}
|
|
9545
9545
|
],
|
|
9546
|
-
"generated_at": "2026-05-
|
|
9546
|
+
"generated_at": "2026-05-27T19:16:36Z",
|
|
9547
9547
|
"packs": [
|
|
9548
9548
|
{
|
|
9549
9549
|
"artefact_count": 84,
|
|
@@ -9586,6 +9586,7 @@
|
|
|
9586
9586
|
},
|
|
9587
9587
|
{
|
|
9588
9588
|
"artefact_count": 25,
|
|
9589
|
+
"cluster": "php",
|
|
9589
9590
|
"description": "Laravel framework patterns; depends on PHP at the artefact level.",
|
|
9590
9591
|
"human_review_required": 0,
|
|
9591
9592
|
"id": "laravel",
|
|
@@ -9608,6 +9609,7 @@
|
|
|
9608
9609
|
},
|
|
9609
9610
|
{
|
|
9610
9611
|
"artefact_count": 3,
|
|
9612
|
+
"cluster": "php",
|
|
9611
9613
|
"description": "Symfony framework patterns; depends on PHP at the artefact level.",
|
|
9612
9614
|
"human_review_required": 0,
|
|
9613
9615
|
"id": "symfony",
|
|
@@ -9673,6 +9675,7 @@
|
|
|
9673
9675
|
},
|
|
9674
9676
|
{
|
|
9675
9677
|
"artefact_count": 3,
|
|
9678
|
+
"cluster": "typescript",
|
|
9676
9679
|
"description": "React framework patterns.",
|
|
9677
9680
|
"human_review_required": 0,
|
|
9678
9681
|
"id": "react",
|
|
@@ -9695,6 +9698,7 @@
|
|
|
9695
9698
|
},
|
|
9696
9699
|
{
|
|
9697
9700
|
"artefact_count": 2,
|
|
9701
|
+
"cluster": "typescript",
|
|
9698
9702
|
"description": "Next.js framework patterns.",
|
|
9699
9703
|
"human_review_required": 0,
|
|
9700
9704
|
"id": "nextjs",
|
|
@@ -9927,7 +9931,7 @@
|
|
|
9927
9931
|
},
|
|
9928
9932
|
{
|
|
9929
9933
|
"artefact_count": 6,
|
|
9930
|
-
"description": "AI video pipeline
|
|
9934
|
+
"description": "AI video pipeline.",
|
|
9931
9935
|
"human_review_required": 0,
|
|
9932
9936
|
"id": "ai-video",
|
|
9933
9937
|
"label": "AI Video",
|
|
@@ -9962,7 +9966,7 @@
|
|
|
9962
9966
|
]
|
|
9963
9967
|
}
|
|
9964
9968
|
],
|
|
9965
|
-
"scanner_version": "
|
|
9969
|
+
"scanner_version": "d75eba636abb",
|
|
9966
9970
|
"stats": {
|
|
9967
9971
|
"by_category": {
|
|
9968
9972
|
"command": 135,
|
|
@@ -9995,6 +9999,11 @@
|
|
|
9995
9999
|
"engineering-base"
|
|
9996
10000
|
],
|
|
9997
10001
|
"description": "Code, tests, CI, reviews, architecture.",
|
|
10002
|
+
"example_roles": [
|
|
10003
|
+
"Developer",
|
|
10004
|
+
"CTO",
|
|
10005
|
+
"Tech Lead"
|
|
10006
|
+
],
|
|
9998
10007
|
"id": "engineering",
|
|
9999
10008
|
"label": "Engineering",
|
|
10000
10009
|
"optional_packs": [
|
|
@@ -10013,6 +10022,10 @@
|
|
|
10013
10022
|
"product-basic"
|
|
10014
10023
|
],
|
|
10015
10024
|
"description": "Discovery, roadmaps, prioritisation, AC tightening.",
|
|
10025
|
+
"example_roles": [
|
|
10026
|
+
"Product Manager",
|
|
10027
|
+
"CPO"
|
|
10028
|
+
],
|
|
10016
10029
|
"id": "product",
|
|
10017
10030
|
"label": "Product",
|
|
10018
10031
|
"optional_packs": [
|
|
@@ -10024,8 +10037,13 @@
|
|
|
10024
10037
|
"finance-basic"
|
|
10025
10038
|
],
|
|
10026
10039
|
"description": "Cashflow, forecasting, DCF, board reporting.",
|
|
10040
|
+
"example_roles": [
|
|
10041
|
+
"CFO",
|
|
10042
|
+
"Controller",
|
|
10043
|
+
"Finance Lead"
|
|
10044
|
+
],
|
|
10027
10045
|
"id": "finance",
|
|
10028
|
-
"label": "Finance
|
|
10046
|
+
"label": "Finance",
|
|
10029
10047
|
"optional_packs": [
|
|
10030
10048
|
"finance-advanced"
|
|
10031
10049
|
]
|
|
@@ -10035,6 +10053,10 @@
|
|
|
10035
10053
|
"founder-strategy"
|
|
10036
10054
|
],
|
|
10037
10055
|
"description": "Strategy, fundraising, vision, board narrative.",
|
|
10056
|
+
"example_roles": [
|
|
10057
|
+
"CEO",
|
|
10058
|
+
"Co-Founder"
|
|
10059
|
+
],
|
|
10038
10060
|
"id": "founder",
|
|
10039
10061
|
"label": "Founder",
|
|
10040
10062
|
"optional_packs": [
|
|
@@ -10048,6 +10070,11 @@
|
|
|
10048
10070
|
"gtm-marketing"
|
|
10049
10071
|
],
|
|
10050
10072
|
"description": "Sales pipeline, marketing, positioning, launch.",
|
|
10073
|
+
"example_roles": [
|
|
10074
|
+
"Head of Sales",
|
|
10075
|
+
"CMO",
|
|
10076
|
+
"Growth Lead"
|
|
10077
|
+
],
|
|
10051
10078
|
"id": "gtm",
|
|
10052
10079
|
"label": "Go-to-Market"
|
|
10053
10080
|
},
|
|
@@ -10056,6 +10083,11 @@
|
|
|
10056
10083
|
"ops-people"
|
|
10057
10084
|
],
|
|
10058
10085
|
"description": "Hiring, comp, perf, org design, runbooks.",
|
|
10086
|
+
"example_roles": [
|
|
10087
|
+
"COO",
|
|
10088
|
+
"Head of People",
|
|
10089
|
+
"Ops Lead"
|
|
10090
|
+
],
|
|
10059
10091
|
"id": "ops",
|
|
10060
10092
|
"label": "Operations"
|
|
10061
10093
|
},
|
|
@@ -10064,6 +10096,10 @@
|
|
|
10064
10096
|
"small-business"
|
|
10065
10097
|
],
|
|
10066
10098
|
"description": "Self-employed / SMB-shaped owner workflows.",
|
|
10099
|
+
"example_roles": [
|
|
10100
|
+
"Owner",
|
|
10101
|
+
"Freelancer"
|
|
10102
|
+
],
|
|
10067
10103
|
"id": "small-business",
|
|
10068
10104
|
"label": "Small Business",
|
|
10069
10105
|
"optional_packs": [
|
|
@@ -10075,6 +10111,10 @@
|
|
|
10075
10111
|
"construction"
|
|
10076
10112
|
],
|
|
10077
10113
|
"description": "Trade-business workflows (planning, quotes).",
|
|
10114
|
+
"example_roles": [
|
|
10115
|
+
"Contractor",
|
|
10116
|
+
"Site Manager"
|
|
10117
|
+
],
|
|
10078
10118
|
"id": "construction",
|
|
10079
10119
|
"label": "Construction"
|
|
10080
10120
|
},
|
|
@@ -10083,6 +10123,9 @@
|
|
|
10083
10123
|
"meta"
|
|
10084
10124
|
],
|
|
10085
10125
|
"description": "Skills/rules/commands that maintain this package.",
|
|
10126
|
+
"example_roles": [
|
|
10127
|
+
"Maintainer"
|
|
10128
|
+
],
|
|
10086
10129
|
"id": "agent-config-maintainer",
|
|
10087
10130
|
"label": "Maintainer"
|
|
10088
10131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
e6f992b30972f31b493c846da1c8bf864c9bfd3732776ccb919deca22d04f410 discovery-manifest.json
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Discovery Manifest — Summary
|
|
2
2
|
|
|
3
|
-
- Generated: `2026-05-
|
|
4
|
-
- Scanner: `
|
|
3
|
+
- Generated: `2026-05-27T19:16:36Z`
|
|
4
|
+
- Scanner: `d75eba636abb`
|
|
5
5
|
- Artefacts: **432**
|
|
6
6
|
- Unassigned: **0**
|
|
7
7
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
| `product-basic` — Product Basic | 11 |
|
|
31
31
|
| `product-discovery` — Product Discovery | 4 |
|
|
32
32
|
|
|
33
|
-
## `finance` — Finance
|
|
33
|
+
## `finance` — Finance
|
|
34
34
|
|
|
35
35
|
> Cashflow, forecasting, DCF, board reporting.
|
|
36
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"checksum": "sha256:
|
|
3
|
-
"generated_at": "2026-05-
|
|
2
|
+
"checksum": "sha256:eb7494e53428947d792e0377cb59e043457819ad3fff0b7ff6bc1011134be766",
|
|
3
|
+
"generated_at": "2026-05-27T19:16:36Z",
|
|
4
4
|
"packs": [
|
|
5
5
|
{
|
|
6
6
|
"artefact_count": 84,
|
|
@@ -103,6 +103,7 @@
|
|
|
103
103
|
"professional": 0,
|
|
104
104
|
"restricted": 0
|
|
105
105
|
},
|
|
106
|
+
"cluster": null,
|
|
106
107
|
"description": "Framework-neutral engineering hygiene — git, tests, reviews.",
|
|
107
108
|
"id": "engineering-base",
|
|
108
109
|
"label": "Engineering Base",
|
|
@@ -135,6 +136,7 @@
|
|
|
135
136
|
"professional": 6,
|
|
136
137
|
"restricted": 0
|
|
137
138
|
},
|
|
139
|
+
"cluster": null,
|
|
138
140
|
"description": "PHP-language patterns (framework-free).",
|
|
139
141
|
"id": "php",
|
|
140
142
|
"label": "PHP",
|
|
@@ -188,6 +190,7 @@
|
|
|
188
190
|
"professional": 25,
|
|
189
191
|
"restricted": 0
|
|
190
192
|
},
|
|
193
|
+
"cluster": "php",
|
|
191
194
|
"description": "Laravel framework patterns; depends on PHP at the artefact level.",
|
|
192
195
|
"id": "laravel",
|
|
193
196
|
"label": "Laravel",
|
|
@@ -220,6 +223,7 @@
|
|
|
220
223
|
"professional": 3,
|
|
221
224
|
"restricted": 0
|
|
222
225
|
},
|
|
226
|
+
"cluster": "php",
|
|
223
227
|
"description": "Symfony framework patterns; depends on PHP at the artefact level.",
|
|
224
228
|
"id": "symfony",
|
|
225
229
|
"label": "Symfony",
|
|
@@ -248,6 +252,7 @@
|
|
|
248
252
|
"professional": 0,
|
|
249
253
|
"restricted": 0
|
|
250
254
|
},
|
|
255
|
+
"cluster": null,
|
|
251
256
|
"description": "JavaScript-language patterns.",
|
|
252
257
|
"id": "javascript",
|
|
253
258
|
"label": "JavaScript",
|
|
@@ -277,6 +282,7 @@
|
|
|
277
282
|
"professional": 1,
|
|
278
283
|
"restricted": 0
|
|
279
284
|
},
|
|
285
|
+
"cluster": null,
|
|
280
286
|
"description": "TypeScript-language patterns.",
|
|
281
287
|
"id": "typescript",
|
|
282
288
|
"label": "TypeScript",
|
|
@@ -309,6 +315,7 @@
|
|
|
309
315
|
"professional": 3,
|
|
310
316
|
"restricted": 0
|
|
311
317
|
},
|
|
318
|
+
"cluster": "typescript",
|
|
312
319
|
"description": "React framework patterns.",
|
|
313
320
|
"id": "react",
|
|
314
321
|
"label": "React",
|
|
@@ -340,6 +347,7 @@
|
|
|
340
347
|
"professional": 2,
|
|
341
348
|
"restricted": 0
|
|
342
349
|
},
|
|
350
|
+
"cluster": "typescript",
|
|
343
351
|
"description": "Next.js framework patterns.",
|
|
344
352
|
"id": "nextjs",
|
|
345
353
|
"label": "Next.js",
|
|
@@ -371,6 +379,7 @@
|
|
|
371
379
|
"professional": 1,
|
|
372
380
|
"restricted": 0
|
|
373
381
|
},
|
|
382
|
+
"cluster": null,
|
|
374
383
|
"description": "Python-language patterns.",
|
|
375
384
|
"id": "python",
|
|
376
385
|
"label": "Python",
|
|
@@ -410,6 +419,7 @@
|
|
|
410
419
|
"professional": 11,
|
|
411
420
|
"restricted": 0
|
|
412
421
|
},
|
|
422
|
+
"cluster": null,
|
|
413
423
|
"description": "Core PO/PM artefacts (ticket refinement, AC, estimation).",
|
|
414
424
|
"id": "product-basic",
|
|
415
425
|
"label": "Product Basic",
|
|
@@ -440,6 +450,7 @@
|
|
|
440
450
|
"professional": 4,
|
|
441
451
|
"restricted": 0
|
|
442
452
|
},
|
|
453
|
+
"cluster": null,
|
|
443
454
|
"description": "JTBD, interviews, VoC, hypothesis testing.",
|
|
444
455
|
"id": "product-discovery",
|
|
445
456
|
"label": "Product Discovery",
|
|
@@ -472,6 +483,7 @@
|
|
|
472
483
|
"professional": 3,
|
|
473
484
|
"restricted": 0
|
|
474
485
|
},
|
|
486
|
+
"cluster": null,
|
|
475
487
|
"description": "Cashflow, runway, basic forecasting.",
|
|
476
488
|
"id": "finance-basic",
|
|
477
489
|
"label": "Finance Basic",
|
|
@@ -502,6 +514,7 @@
|
|
|
502
514
|
"professional": 0,
|
|
503
515
|
"restricted": 0
|
|
504
516
|
},
|
|
517
|
+
"cluster": null,
|
|
505
518
|
"description": "DCF, scenario modelling, comp banding.",
|
|
506
519
|
"id": "finance-advanced",
|
|
507
520
|
"label": "Finance Advanced",
|
|
@@ -534,6 +547,7 @@
|
|
|
534
547
|
"professional": 4,
|
|
535
548
|
"restricted": 0
|
|
536
549
|
},
|
|
550
|
+
"cluster": null,
|
|
537
551
|
"description": "Pipeline, MEDDIC, forecast accuracy.",
|
|
538
552
|
"id": "gtm-sales",
|
|
539
553
|
"label": "GTM — Sales",
|
|
@@ -568,6 +582,7 @@
|
|
|
568
582
|
"professional": 8,
|
|
569
583
|
"restricted": 0
|
|
570
584
|
},
|
|
585
|
+
"cluster": null,
|
|
571
586
|
"description": "Positioning, messaging, editorial, content funnel.",
|
|
572
587
|
"id": "gtm-marketing",
|
|
573
588
|
"label": "GTM — Marketing",
|
|
@@ -603,6 +618,7 @@
|
|
|
603
618
|
"professional": 8,
|
|
604
619
|
"restricted": 0
|
|
605
620
|
},
|
|
621
|
+
"cluster": null,
|
|
606
622
|
"description": "Hiring loops, onboarding programs, comp banding.",
|
|
607
623
|
"id": "ops-people",
|
|
608
624
|
"label": "Operations — People",
|
|
@@ -637,6 +653,7 @@
|
|
|
637
653
|
"professional": 0,
|
|
638
654
|
"restricted": 0
|
|
639
655
|
},
|
|
656
|
+
"cluster": null,
|
|
640
657
|
"description": "Vision, fundraising narrative, competitive moat.",
|
|
641
658
|
"id": "founder-strategy",
|
|
642
659
|
"label": "Founder — Strategy",
|
|
@@ -662,6 +679,7 @@
|
|
|
662
679
|
"professional": 0,
|
|
663
680
|
"restricted": 0
|
|
664
681
|
},
|
|
682
|
+
"cluster": null,
|
|
665
683
|
"description": "SMB-shaped owner workflows.",
|
|
666
684
|
"id": "small-business",
|
|
667
685
|
"label": "Small Business",
|
|
@@ -687,6 +705,7 @@
|
|
|
687
705
|
"professional": 0,
|
|
688
706
|
"restricted": 0
|
|
689
707
|
},
|
|
708
|
+
"cluster": null,
|
|
690
709
|
"description": "Trade-business workflows.",
|
|
691
710
|
"id": "construction",
|
|
692
711
|
"label": "Construction",
|
|
@@ -719,7 +738,8 @@
|
|
|
719
738
|
"professional": 0,
|
|
720
739
|
"restricted": 0
|
|
721
740
|
},
|
|
722
|
-
"
|
|
741
|
+
"cluster": null,
|
|
742
|
+
"description": "AI video pipeline.",
|
|
723
743
|
"id": "ai-video",
|
|
724
744
|
"label": "AI Video",
|
|
725
745
|
"requires_hint": [],
|
|
@@ -997,6 +1017,7 @@
|
|
|
997
1017
|
"professional": 0,
|
|
998
1018
|
"restricted": 0
|
|
999
1019
|
},
|
|
1020
|
+
"cluster": null,
|
|
1000
1021
|
"description": "Artefacts that maintain this package (agent-config itself).",
|
|
1001
1022
|
"id": "meta",
|
|
1002
1023
|
"label": "Meta",
|
|
@@ -1007,5 +1028,5 @@
|
|
|
1007
1028
|
]
|
|
1008
1029
|
}
|
|
1009
1030
|
],
|
|
1010
|
-
"scanner_version": "
|
|
1031
|
+
"scanner_version": "d75eba636abb"
|
|
1011
1032
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"checksum": "sha256:
|
|
3
|
-
"generated_at": "2026-05-
|
|
4
|
-
"scanner_version": "
|
|
2
|
+
"checksum": "sha256:eb7494e53428947d792e0377cb59e043457819ad3fff0b7ff6bc1011134be766",
|
|
3
|
+
"generated_at": "2026-05-27T19:16:36Z",
|
|
4
|
+
"scanner_version": "d75eba636abb",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
{
|
|
7
7
|
"artefact_count": 125,
|
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
],
|
|
251
251
|
"description": "Cashflow, forecasting, DCF, board reporting.",
|
|
252
252
|
"id": "finance",
|
|
253
|
-
"label": "Finance
|
|
253
|
+
"label": "Finance",
|
|
254
254
|
"optional_packs": [
|
|
255
255
|
"finance-advanced"
|
|
256
256
|
],
|