carrick 0.3.81 → 0.3.82
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/dist/init/files.d.ts +1 -0
- package/dist/init/files.js +16 -0
- package/dist/init/files.js.map +1 -0
- package/dist/init/remove.js +36 -14
- package/dist/init/remove.js.map +1 -1
- package/dist/init/run.js +29 -11
- package/dist/init/run.js.map +1 -1
- package/dist/init/task-skills.d.ts +70 -0
- package/dist/init/task-skills.js +204 -0
- package/dist/init/task-skills.js.map +1 -0
- package/dist/scan.d.ts +13 -5
- package/dist/scan.js +21 -10
- package/dist/scan.js.map +1 -1
- package/dist/templates.d.ts +9 -0
- package/dist/templates.js +9 -1
- package/dist/templates.js.map +1 -1
- package/package.json +6 -6
- package/templates/skills/carrick-census.md +80 -0
- package/templates/skills/carrick-drift.md +101 -0
- package/templates/skills/carrick-impact.md +106 -0
- package/templates/skills/carrick-reuse.md +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function writeIfChanged(target: string, body: string): "written" | "unchanged";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Writing a file only where its bytes would change.
|
|
2
|
+
//
|
|
3
|
+
// Every writer in this folder goes through here, so re-running `carrick init`
|
|
4
|
+
// leaves an unchanged file's mtime alone: a settings file, a skill file and a
|
|
5
|
+
// proposal are all things a watcher, a build and a git status read.
|
|
6
|
+
import fs from "node:fs";
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
export function writeIfChanged(target, body) {
|
|
9
|
+
const existing = fs.existsSync(target) ? fs.readFileSync(target, "utf8") : null;
|
|
10
|
+
if (existing === body)
|
|
11
|
+
return "unchanged";
|
|
12
|
+
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
13
|
+
fs.writeFileSync(target, body);
|
|
14
|
+
return "written";
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/init/files.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,oEAAoE;AAEpE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAY;IACzD,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAC1C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/init/remove.js
CHANGED
|
@@ -1,26 +1,33 @@
|
|
|
1
1
|
// Undoing `carrick init`, on this machine.
|
|
2
2
|
//
|
|
3
3
|
// An install that can state its own undo is the courtesy that makes people
|
|
4
|
-
// willing to try it (carrick#1034), and init now writes in
|
|
5
|
-
// hook entries in a workspace's `.claude` settings,
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// directory.
|
|
4
|
+
// willing to try it (carrick#1034), and init now writes in eight places: the
|
|
5
|
+
// hook entries in a workspace's `.claude` settings, the task skills under
|
|
6
|
+
// `.claude/skills` and `.agents/skills`, an MCP server entry in each agent
|
|
7
|
+
// client's own configuration, the `.carrick` directory, the install id in
|
|
8
|
+
// `~/.carrick`, and the credential in the user's configuration directory.
|
|
9
9
|
//
|
|
10
10
|
// Every step here is the inverse of a writer in this folder, and each pair
|
|
11
11
|
// lives in one file so the two cannot drift: `mergeCarrickHooks` /
|
|
12
|
-
// `removeCarrickHooks` in `settings.ts`, `
|
|
12
|
+
// `removeCarrickHooks` in `settings.ts`, `writeTaskSkills` /
|
|
13
|
+
// `removeTaskSkills` in `task-skills.ts`, `mergeServerEntry` /
|
|
13
14
|
// `removeServerEntry` and `connectMcpClients` / `disconnectMcpClients` in
|
|
14
15
|
// `mcp.ts`, `ensureInstallId` / `removeInstallId` in `install-id.ts`,
|
|
15
16
|
// `writeProposal` / the `.carrick` removal below, `saveCredential` /
|
|
16
17
|
// `removeCredential` in `../auth/credentials.ts`.
|
|
17
18
|
//
|
|
18
|
-
// What it does NOT do is edit a
|
|
19
|
-
// files in the repository and a repository is
|
|
20
|
-
// listed with the `git rm` line that removes
|
|
21
|
-
// merged into files someone else owns are
|
|
22
|
-
// command that rewrote a committed workflow or
|
|
23
|
-
// destroying work this command cannot read.
|
|
19
|
+
// What it does NOT do is edit a file whose content it cannot reproduce. The
|
|
20
|
+
// scaffold pull request put files in the repository and a repository is
|
|
21
|
+
// version controlled: those are listed with the `git rm` line that removes
|
|
22
|
+
// them, and the sections that were merged into files someone else owns are
|
|
23
|
+
// named for a human to delete. A command that rewrote a committed workflow or
|
|
24
|
+
// an AGENTS.md would be destroying work this command cannot read.
|
|
25
|
+
//
|
|
26
|
+
// The task skills are the one exception, and they earn it by being checkable:
|
|
27
|
+
// each one carries a digest of the body this package wrote, so a file that
|
|
28
|
+
// still matches its stamp is byte for byte what `carrick init` put there and
|
|
29
|
+
// nothing of anyone's is in it. One whose stamp no longer matches, and one
|
|
30
|
+
// carrying no stamp, are left where they are and named.
|
|
24
31
|
//
|
|
25
32
|
// It runs no scan and never asks for the scanner binary: everything it touches
|
|
26
33
|
// is a file this package wrote.
|
|
@@ -31,6 +38,7 @@ import { installIdPath, removeInstallId } from "./install-id.js";
|
|
|
31
38
|
import { disconnectMcpClients } from "./mcp.js";
|
|
32
39
|
import { repoRoots } from "./repos.js";
|
|
33
40
|
import { removeCarrickHooks } from "./settings.js";
|
|
41
|
+
import { removeTaskSkills, SKILL_ROOTS } from "./task-skills.js";
|
|
34
42
|
import { createOutput, DOCS } from "./output.js";
|
|
35
43
|
export function parseArgs(argv, cwd = process.cwd()) {
|
|
36
44
|
const options = { workspace: cwd, keepLogin: false };
|
|
@@ -69,8 +77,10 @@ function help() {
|
|
|
69
77
|
"client's configuration, the .carrick directory, this machine's install id,",
|
|
70
78
|
"and the saved credential.",
|
|
71
79
|
"Other hooks, other MCP servers and the settings files themselves are left",
|
|
72
|
-
"as they are.
|
|
73
|
-
"
|
|
80
|
+
"as they are. The task skills it wrote are removed where they still match",
|
|
81
|
+
"the stamp it wrote them with, and named where they do not. Files the",
|
|
82
|
+
"scaffold added to the repository are listed with the git rm line that",
|
|
83
|
+
"removes them.",
|
|
74
84
|
"",
|
|
75
85
|
" -w, --workspace DIR The folder init was run in (default: this one)",
|
|
76
86
|
" --keep-login Leave the saved credential; remove everything else",
|
|
@@ -223,6 +233,18 @@ export async function remove(argv, out = createOutput()) {
|
|
|
223
233
|
catch (error) {
|
|
224
234
|
out.refuse(`${error.message}. Delete ${installIdPath()} by hand.`);
|
|
225
235
|
}
|
|
236
|
+
// Only the stamped, unchanged copies. Anything a user has made their own is
|
|
237
|
+
// named rather than deleted, which is the same rule the install follows.
|
|
238
|
+
const skills = removeTaskSkills(workspace);
|
|
239
|
+
if (skills.deleted.length > 0) {
|
|
240
|
+
out.done(`${skills.deleted.length} task skill file(s) removed from ${SKILL_ROOTS.join(" and ")}`);
|
|
241
|
+
removed += 1;
|
|
242
|
+
}
|
|
243
|
+
for (const row of skills.kept) {
|
|
244
|
+
out.warn(row.state === "edited"
|
|
245
|
+
? `${row.path} has been edited since Carrick wrote it, so it was left in place. Delete it by hand to finish removing it.`
|
|
246
|
+
: `${row.path} was not written by Carrick, so it was left in place.`);
|
|
247
|
+
}
|
|
226
248
|
const carrick = path.join(workspace, ".carrick");
|
|
227
249
|
if (fs.existsSync(carrick)) {
|
|
228
250
|
try {
|
package/dist/init/remove.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/init/remove.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/init/remove.ts"],"names":[],"mappings":"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"}
|
package/dist/init/run.js
CHANGED
|
@@ -19,6 +19,8 @@ import { downloadHostedIndex, hostedReport, nativeRunner } from "./hosted.js";
|
|
|
19
19
|
import { ensureProject, projectStep, SLUG } from "./projects.js";
|
|
20
20
|
import { connectMcpClients, mcpLine } from "./mcp.js";
|
|
21
21
|
import { hookCommand, mergeCarrickHooks, removeCarrickHooks } from "./settings.js";
|
|
22
|
+
import { ignoredSkillRoots, taskSkillLines, writeTaskSkills } from "./task-skills.js";
|
|
23
|
+
import { writeIfChanged } from "./files.js";
|
|
22
24
|
import { createOutput, DOCS } from "./output.js";
|
|
23
25
|
import { renderTemplate } from "../templates.js";
|
|
24
26
|
/**
|
|
@@ -96,9 +98,9 @@ function help() {
|
|
|
96
98
|
"or a folder of repos: the project, the repo connection, the agent hooks,",
|
|
97
99
|
"the MCP connection, and the service proposal your agent turns into",
|
|
98
100
|
"carrick.json. It writes nothing into the repository but the ignored",
|
|
99
|
-
".carrick directory
|
|
100
|
-
"Carrick already holds an index for these
|
|
101
|
-
".carrick so this machine can answer from it.",
|
|
101
|
+
".carrick directory, the hook settings, and the four task skills your agent",
|
|
102
|
+
"loads. It runs no analysis: where Carrick already holds an index for these",
|
|
103
|
+
"repos, it reads that index into .carrick so this machine can answer from it.",
|
|
102
104
|
"",
|
|
103
105
|
" -w, --workspace DIR The folder holding the repos (default: this one)",
|
|
104
106
|
" --project SLUG Require these repos in this Carrick project",
|
|
@@ -108,14 +110,6 @@ function help() {
|
|
|
108
110
|
`The editor extension, the hooks, CI and a carrick.json written by hand: ${DOCS}`,
|
|
109
111
|
].join("\n");
|
|
110
112
|
}
|
|
111
|
-
function writeIfChanged(target, body) {
|
|
112
|
-
const existing = fs.existsSync(target) ? fs.readFileSync(target, "utf8") : null;
|
|
113
|
-
if (existing === body)
|
|
114
|
-
return "unchanged";
|
|
115
|
-
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
116
|
-
fs.writeFileSync(target, body);
|
|
117
|
-
return "written";
|
|
118
|
-
}
|
|
119
113
|
/** Whether a command answers on this machine, for a line we should not print. */
|
|
120
114
|
function onPath(command) {
|
|
121
115
|
const probe = spawnSync(process.platform === "win32" ? "where" : "which", [command], {
|
|
@@ -238,6 +232,10 @@ export async function init(argv) {
|
|
|
238
232
|
// The repos the workspace read found an index for: where CI has already built
|
|
239
233
|
// one, this run reads it rather than ordering a scan (carrick#993 row 2).
|
|
240
234
|
const hostedIndex = [];
|
|
235
|
+
// The project the skills are written against, once it is settled. It stays
|
|
236
|
+
// null where no repo here names a GitHub repository, and the skills then
|
|
237
|
+
// tell the agent to read the scope from the git remote instead.
|
|
238
|
+
let projectSlug = null;
|
|
241
239
|
try {
|
|
242
240
|
// A machine that has never signed in signs in here rather than being told
|
|
243
241
|
// to run another command: `carrick login` is the same browser round trip,
|
|
@@ -320,6 +318,7 @@ export async function init(argv) {
|
|
|
320
318
|
else if (!reposAreInProject(initial, names, project)) {
|
|
321
319
|
projectExists = await ensureProject(credential.token, project, prompts);
|
|
322
320
|
}
|
|
321
|
+
projectSlug = project;
|
|
323
322
|
const identity = await connectRepos(credential.token, names, initial, {
|
|
324
323
|
interactive,
|
|
325
324
|
project: project ?? undefined,
|
|
@@ -430,6 +429,25 @@ export async function init(argv) {
|
|
|
430
429
|
hooksWritten = false;
|
|
431
430
|
out.refuse(`Could not configure Carrick hooks: ${error.message}. Fix ${settingsName} and run carrick init again.`);
|
|
432
431
|
}
|
|
432
|
+
// The task skills, beside the hooks and independent of them: a settings file
|
|
433
|
+
// somebody hand-edited into invalid JSON is no reason to withhold the bodies
|
|
434
|
+
// an agent reads. A file this package did not write, or one somebody has
|
|
435
|
+
// since changed, is left alone and named.
|
|
436
|
+
try {
|
|
437
|
+
const { done, warn } = taskSkillLines(writeTaskSkills(workspace, { slug: projectSlug }));
|
|
438
|
+
for (const line of done)
|
|
439
|
+
out.done(line);
|
|
440
|
+
for (const line of warn)
|
|
441
|
+
out.warn(line);
|
|
442
|
+
const ignored = ignoredSkillRoots(workspace);
|
|
443
|
+
if (ignored.length > 0) {
|
|
444
|
+
const one = ignored.length === 1;
|
|
445
|
+
out.warn(`${ignored.join(" and ")} ${one ? "is" : "are"} git-ignored here, so these skills stay on this machine. Track ${one ? "it" : "them"} to give the rest of the team the same answers.`);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
catch (error) {
|
|
449
|
+
out.refuse(`Could not write the task skills: ${error.message}`);
|
|
450
|
+
}
|
|
433
451
|
const mcp = connectMcpClients();
|
|
434
452
|
if (hooksWritten)
|
|
435
453
|
out.done(configuredLine(mcp));
|
package/dist/init/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/init/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** The skills, in the order `carrick init` reports them. */
|
|
2
|
+
export declare const TASK_SKILLS: readonly ["carrick-impact", "carrick-reuse", "carrick-drift", "carrick-census"];
|
|
3
|
+
export type TaskSkill = (typeof TASK_SKILLS)[number];
|
|
4
|
+
/** One directory per harness. Both hold identical bytes. */
|
|
5
|
+
export declare const SKILL_ROOTS: string[];
|
|
6
|
+
/** Where one skill lands under one root, relative to the workspace. */
|
|
7
|
+
export declare function skillFile(root: string, name: TaskSkill): string;
|
|
8
|
+
/** Every path these skills occupy, relative to the workspace. */
|
|
9
|
+
export declare function taskSkillPaths(): string[];
|
|
10
|
+
/** A rendered body with its stamp on the last line. */
|
|
11
|
+
export declare function stamped(body: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* What a path holds now.
|
|
14
|
+
*
|
|
15
|
+
* `ours` is a file this package wrote and nobody has touched since, whichever
|
|
16
|
+
* version wrote it. `edited` carries our stamp over a body that has moved, and
|
|
17
|
+
* `theirs` carries no stamp at all: a skill of the same name somebody wrote
|
|
18
|
+
* themselves. Only `absent` and `ours` are written over.
|
|
19
|
+
*/
|
|
20
|
+
export type SkillState = "absent" | "ours" | "edited" | "theirs";
|
|
21
|
+
export declare function skillState(existing: string | null): SkillState;
|
|
22
|
+
/** How a call names the project on every Carrick tool call in a body. */
|
|
23
|
+
export type SkillScope = {
|
|
24
|
+
slug: string | null;
|
|
25
|
+
};
|
|
26
|
+
/** One skill body, scoped and stamped, ready to write. */
|
|
27
|
+
export declare function renderTaskSkill(name: TaskSkill, scope: SkillScope): string;
|
|
28
|
+
/** What one path did on this run. */
|
|
29
|
+
export type SkillOutcome = {
|
|
30
|
+
/** Relative to the workspace. */
|
|
31
|
+
path: string;
|
|
32
|
+
state: SkillState;
|
|
33
|
+
/** True where this run put new bytes there. */
|
|
34
|
+
wrote: boolean;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Write every skill under both roots, leaving alone anything that is not ours.
|
|
38
|
+
*
|
|
39
|
+
* Idempotent twice over: a second run renders the same bytes, and
|
|
40
|
+
* `writeIfChanged` does not touch a file that already holds them.
|
|
41
|
+
*/
|
|
42
|
+
export declare function writeTaskSkills(workspace: string, scope: SkillScope): SkillOutcome[];
|
|
43
|
+
/** The lines `carrick init` prints about what it just did with them. */
|
|
44
|
+
export declare function taskSkillLines(outcomes: SkillOutcome[]): {
|
|
45
|
+
done: string[];
|
|
46
|
+
warn: string[];
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Delete the skill files this package wrote, and only those.
|
|
50
|
+
*
|
|
51
|
+
* An edited body and a file of somebody else's are returned as `kept` for the
|
|
52
|
+
* caller to name, exactly as the write path leaves them. A skill directory
|
|
53
|
+
* emptied by the deletion goes with it; a root holding anything else stays.
|
|
54
|
+
*/
|
|
55
|
+
export declare function removeTaskSkills(workspace: string): {
|
|
56
|
+
deleted: string[];
|
|
57
|
+
kept: SkillOutcome[];
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* The skill roots this repository ignores.
|
|
61
|
+
*
|
|
62
|
+
* An ignored skill works on the machine that ran `carrick init` and reaches
|
|
63
|
+
* nobody else on the team, which is a thing to say once rather than a thing to
|
|
64
|
+
* change: what a repository ignores is its own decision.
|
|
65
|
+
*
|
|
66
|
+
* `git check-ignore` answers for a path that does not exist yet. Exit 0 is
|
|
67
|
+
* ignored and 1 is not; anything else (128 outside a repository) is git
|
|
68
|
+
* declining to answer, and this says nothing then.
|
|
69
|
+
*/
|
|
70
|
+
export declare function ignoredSkillRoots(workspace: string): string[];
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
// The four task skills `carrick init` installs beside the hooks.
|
|
2
|
+
//
|
|
3
|
+
// A skill is the body a hook or an agent's own judgement points at, and these
|
|
4
|
+
// four perform a task rather than remind: each one is a sequence of Carrick
|
|
5
|
+
// tool calls, and the agent's work is to confirm what came back in source,
|
|
6
|
+
// classify it, decide and act.
|
|
7
|
+
//
|
|
8
|
+
// `docs/reference/task-skills.md` is what each one covers, when it fires and
|
|
9
|
+
// how the stamp below decides who owns a file. The bodies themselves are the
|
|
10
|
+
// markdown in `templates/skills/`, so they can be read and reviewed as files.
|
|
11
|
+
//
|
|
12
|
+
// Two copies of the same bytes go in, one per harness: `.claude/skills/` for
|
|
13
|
+
// Claude Code and `.agents/skills/` for Codex, which is the scaffold parity
|
|
14
|
+
// rule of 2026-09-05.
|
|
15
|
+
//
|
|
16
|
+
// Every file this writes ends in a stamp: a marker and a digest of the body
|
|
17
|
+
// above it. The digest is what separates the three states a path can be in on
|
|
18
|
+
// a re-run — ours and untouched, ours and since edited, or somebody else's —
|
|
19
|
+
// and it stays right across an upgrade, where the shipped body changes and a
|
|
20
|
+
// version number would not. `carrick remove` deletes the untouched ones and
|
|
21
|
+
// nothing else, so a file a user has made their own is never destroyed by a
|
|
22
|
+
// command undoing an install.
|
|
23
|
+
//
|
|
24
|
+
// The reminder skill at `.claude/skills/carrick/SKILL.md` belongs to the cloud
|
|
25
|
+
// scaffold and carries no stamp, so nothing here reads or writes it.
|
|
26
|
+
import { createHash } from "node:crypto";
|
|
27
|
+
import fs from "node:fs";
|
|
28
|
+
import path from "node:path";
|
|
29
|
+
import { spawnSync } from "node:child_process";
|
|
30
|
+
import { templatesDir } from "../templates.js";
|
|
31
|
+
import { writeIfChanged } from "./files.js";
|
|
32
|
+
/** The skills, in the order `carrick init` reports them. */
|
|
33
|
+
export const TASK_SKILLS = [
|
|
34
|
+
"carrick-impact",
|
|
35
|
+
"carrick-reuse",
|
|
36
|
+
"carrick-drift",
|
|
37
|
+
"carrick-census",
|
|
38
|
+
];
|
|
39
|
+
/** One directory per harness. Both hold identical bytes. */
|
|
40
|
+
export const SKILL_ROOTS = [
|
|
41
|
+
path.join(".claude", "skills"),
|
|
42
|
+
path.join(".agents", "skills"),
|
|
43
|
+
];
|
|
44
|
+
/** Where one skill lands under one root, relative to the workspace. */
|
|
45
|
+
export function skillFile(root, name) {
|
|
46
|
+
return path.join(root, name, "SKILL.md");
|
|
47
|
+
}
|
|
48
|
+
/** Every path these skills occupy, relative to the workspace. */
|
|
49
|
+
export function taskSkillPaths() {
|
|
50
|
+
return SKILL_ROOTS.flatMap((root) => TASK_SKILLS.map((name) => skillFile(root, name)));
|
|
51
|
+
}
|
|
52
|
+
const STAMP = /^<!-- carrick:skill sha256:([0-9a-f]{12}) -->$/;
|
|
53
|
+
/** The digest of a body, as the stamp spells it. */
|
|
54
|
+
function digest(body) {
|
|
55
|
+
return createHash("sha256").update(body, "utf8").digest("hex").slice(0, 12);
|
|
56
|
+
}
|
|
57
|
+
/** A rendered body with its stamp on the last line. */
|
|
58
|
+
export function stamped(body) {
|
|
59
|
+
const text = body.endsWith("\n") ? body : `${body}\n`;
|
|
60
|
+
return `${text}\n<!-- carrick:skill sha256:${digest(text)} -->\n`;
|
|
61
|
+
}
|
|
62
|
+
export function skillState(existing) {
|
|
63
|
+
if (existing === null)
|
|
64
|
+
return "absent";
|
|
65
|
+
// Line endings are normalised before anything is compared. A checkout with
|
|
66
|
+
// `core.autocrlf` set rewrites every one of these files to CRLF on the way
|
|
67
|
+
// to disk, and a digest taken over those bytes would read all eight as
|
|
68
|
+
// somebody else's work and warn about them on every run.
|
|
69
|
+
const lines = existing.replace(/\r\n/g, "\n").split("\n");
|
|
70
|
+
// The marker is looked for anywhere rather than on the last line, because
|
|
71
|
+
// appending a step under it is as ordinary an edit as changing one above it,
|
|
72
|
+
// and a file that still carries our marker is still one of ours.
|
|
73
|
+
const marker = lines.findIndex((line) => STAMP.test(line));
|
|
74
|
+
if (marker === -1)
|
|
75
|
+
return "theirs";
|
|
76
|
+
// The blank line `stamped` puts before the marker is the join's last
|
|
77
|
+
// separator, so rejoining everything above it reproduces the exact bytes
|
|
78
|
+
// that were digested.
|
|
79
|
+
const body = lines.slice(0, marker).join("\n");
|
|
80
|
+
const after = lines.slice(marker + 1).join("").trim();
|
|
81
|
+
const claimed = STAMP.exec(lines[marker])?.[1];
|
|
82
|
+
return digest(body) === claimed && after === "" ? "ours" : "edited";
|
|
83
|
+
}
|
|
84
|
+
function scopeArgument(scope) {
|
|
85
|
+
return scope.slug === null ? 'repo: "<owner/repo>"' : `project: "${scope.slug}"`;
|
|
86
|
+
}
|
|
87
|
+
function scopeNote(scope) {
|
|
88
|
+
return scope.slug === null
|
|
89
|
+
? "Every Carrick call below needs a scope. Read this repository's once with `git remote get-url origin` and pass it as `repo: \"<owner/repo>\"` wherever the commands below write it."
|
|
90
|
+
: `Every Carrick call below carries \`project: "${scope.slug}"\`, which is this workspace's Carrick project and is already written into the commands.`;
|
|
91
|
+
}
|
|
92
|
+
/** One skill body, scoped and stamped, ready to write. */
|
|
93
|
+
export function renderTaskSkill(name, scope) {
|
|
94
|
+
const source = fs.readFileSync(path.join(templatesDir(), "skills", `${name}.md`), "utf8");
|
|
95
|
+
const rendered = source
|
|
96
|
+
.split("{{SCOPE_NOTE}}")
|
|
97
|
+
.join(scopeNote(scope))
|
|
98
|
+
.split("{{SCOPE}}")
|
|
99
|
+
.join(scopeArgument(scope));
|
|
100
|
+
// A body that still holds a placeholder is a file that looks written and
|
|
101
|
+
// tells an agent to call a tool with a literal `{{SCOPE}}` in it.
|
|
102
|
+
const left = /\{\{([A-Z_]+)\}\}/.exec(rendered);
|
|
103
|
+
if (left)
|
|
104
|
+
throw new Error(`${name} still holds ${left[0]} after rendering`);
|
|
105
|
+
return stamped(rendered);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Write every skill under both roots, leaving alone anything that is not ours.
|
|
109
|
+
*
|
|
110
|
+
* Idempotent twice over: a second run renders the same bytes, and
|
|
111
|
+
* `writeIfChanged` does not touch a file that already holds them.
|
|
112
|
+
*/
|
|
113
|
+
export function writeTaskSkills(workspace, scope) {
|
|
114
|
+
const outcomes = [];
|
|
115
|
+
for (const root of SKILL_ROOTS) {
|
|
116
|
+
for (const name of TASK_SKILLS) {
|
|
117
|
+
const relative = skillFile(root, name);
|
|
118
|
+
const target = path.join(workspace, relative);
|
|
119
|
+
const existing = fs.existsSync(target) ? fs.readFileSync(target, "utf8") : null;
|
|
120
|
+
const state = skillState(existing);
|
|
121
|
+
if (state === "edited" || state === "theirs") {
|
|
122
|
+
outcomes.push({ path: relative, state, wrote: false });
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const result = writeIfChanged(target, renderTaskSkill(name, scope));
|
|
126
|
+
outcomes.push({ path: relative, state, wrote: result === "written" });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return outcomes;
|
|
130
|
+
}
|
|
131
|
+
/** The lines `carrick init` prints about what it just did with them. */
|
|
132
|
+
export function taskSkillLines(outcomes) {
|
|
133
|
+
const done = [];
|
|
134
|
+
const warn = [];
|
|
135
|
+
const installed = outcomes.filter((row) => row.state === "absent" || row.state === "ours");
|
|
136
|
+
if (installed.length > 0) {
|
|
137
|
+
done.push(`Task skills installed in ${SKILL_ROOTS.join(" and ")}: ${TASK_SKILLS.join(", ")}`);
|
|
138
|
+
}
|
|
139
|
+
for (const row of outcomes) {
|
|
140
|
+
if (row.state === "edited") {
|
|
141
|
+
warn.push(`${row.path} has been edited here, so it was left as it is. Delete it and run carrick init again for the current version.`);
|
|
142
|
+
}
|
|
143
|
+
else if (row.state === "theirs") {
|
|
144
|
+
warn.push(`${row.path} was not written by Carrick, so it was left as it is.`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return { done, warn };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Delete the skill files this package wrote, and only those.
|
|
151
|
+
*
|
|
152
|
+
* An edited body and a file of somebody else's are returned as `kept` for the
|
|
153
|
+
* caller to name, exactly as the write path leaves them. A skill directory
|
|
154
|
+
* emptied by the deletion goes with it; a root holding anything else stays.
|
|
155
|
+
*/
|
|
156
|
+
export function removeTaskSkills(workspace) {
|
|
157
|
+
const deleted = [];
|
|
158
|
+
const kept = [];
|
|
159
|
+
for (const root of SKILL_ROOTS) {
|
|
160
|
+
for (const name of TASK_SKILLS) {
|
|
161
|
+
const relative = skillFile(root, name);
|
|
162
|
+
const target = path.join(workspace, relative);
|
|
163
|
+
if (!fs.existsSync(target))
|
|
164
|
+
continue;
|
|
165
|
+
const state = skillState(fs.readFileSync(target, "utf8"));
|
|
166
|
+
if (state !== "ours") {
|
|
167
|
+
kept.push({ path: relative, state, wrote: false });
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
fs.rmSync(target);
|
|
171
|
+
deleted.push(relative);
|
|
172
|
+
for (const directory of [path.dirname(target), path.join(workspace, root)]) {
|
|
173
|
+
try {
|
|
174
|
+
fs.rmdirSync(directory);
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
// Holds something else. That is the answer, not a failure.
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return { deleted, kept };
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* The skill roots this repository ignores.
|
|
186
|
+
*
|
|
187
|
+
* An ignored skill works on the machine that ran `carrick init` and reaches
|
|
188
|
+
* nobody else on the team, which is a thing to say once rather than a thing to
|
|
189
|
+
* change: what a repository ignores is its own decision.
|
|
190
|
+
*
|
|
191
|
+
* `git check-ignore` answers for a path that does not exist yet. Exit 0 is
|
|
192
|
+
* ignored and 1 is not; anything else (128 outside a repository) is git
|
|
193
|
+
* declining to answer, and this says nothing then.
|
|
194
|
+
*/
|
|
195
|
+
export function ignoredSkillRoots(workspace) {
|
|
196
|
+
return SKILL_ROOTS.filter((root) => {
|
|
197
|
+
const probe = spawnSync("git", ["check-ignore", "-q", "--", root], {
|
|
198
|
+
cwd: workspace,
|
|
199
|
+
stdio: "ignore",
|
|
200
|
+
});
|
|
201
|
+
return probe.status === 0;
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=task-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-skills.js","sourceRoot":"","sources":["../../src/init/task-skills.ts"],"names":[],"mappings":"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"}
|
package/dist/scan.d.ts
CHANGED
|
@@ -20,6 +20,9 @@ export type ServiceSummary = {
|
|
|
20
20
|
name: string;
|
|
21
21
|
routes: number;
|
|
22
22
|
calls: number;
|
|
23
|
+
/** Absent on a summary from a binary older than carrick#1321. */
|
|
24
|
+
functions?: number;
|
|
25
|
+
types?: number;
|
|
23
26
|
routes_without_response_type: number;
|
|
24
27
|
};
|
|
25
28
|
/** Mirrors `progress::Summary`: what a finished build amounts to. */
|
|
@@ -64,12 +67,17 @@ export declare function isRendered(command: string | undefined, args: string[]):
|
|
|
64
67
|
/** `169.4` as `2m49s`, `32.7` as `32.7s`. Under a minute keeps its tenth. */
|
|
65
68
|
export declare function elapsed(seconds: number): string;
|
|
66
69
|
/**
|
|
67
|
-
* The one line a finished build is worth:
|
|
68
|
-
*
|
|
69
|
-
* compatibility check.
|
|
70
|
+
* The one line a finished build is worth: what the index holds, then the one
|
|
71
|
+
* shortfall in it.
|
|
70
72
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
+
* Routes and calls alone were the whole line, and a service of 111 routes,
|
|
74
|
+
* 363 functions and 175 types read as `111 routes · 1 call` — which to a
|
|
75
|
+
* developer, and to an agent, is a nearly empty index (carrick#1321). The two
|
|
76
|
+
* largest things it holds are named before the shortfall, because the line's
|
|
77
|
+
* subject is what was built.
|
|
78
|
+
*
|
|
79
|
+
* The shortfall is dropped when it is zero. A line states how many, of which
|
|
80
|
+
* thing, and what to do about it; nothing to do is nothing to say
|
|
73
81
|
* (carrick#1284).
|
|
74
82
|
*/
|
|
75
83
|
export declare function summaryLine(summary: Summary): string;
|
package/dist/scan.js
CHANGED
|
@@ -114,21 +114,32 @@ function plural(count, noun) {
|
|
|
114
114
|
return `${count} ${noun}${count === 1 ? "" : "s"}`;
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
|
-
* The one line a finished build is worth:
|
|
118
|
-
*
|
|
119
|
-
* compatibility check.
|
|
117
|
+
* The one line a finished build is worth: what the index holds, then the one
|
|
118
|
+
* shortfall in it.
|
|
120
119
|
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
120
|
+
* Routes and calls alone were the whole line, and a service of 111 routes,
|
|
121
|
+
* 363 functions and 175 types read as `111 routes · 1 call` — which to a
|
|
122
|
+
* developer, and to an agent, is a nearly empty index (carrick#1321). The two
|
|
123
|
+
* largest things it holds are named before the shortfall, because the line's
|
|
124
|
+
* subject is what was built.
|
|
125
|
+
*
|
|
126
|
+
* The shortfall is dropped when it is zero. A line states how many, of which
|
|
127
|
+
* thing, and what to do about it; nothing to do is nothing to say
|
|
123
128
|
* (carrick#1284).
|
|
124
129
|
*/
|
|
125
130
|
export function summaryLine(summary) {
|
|
126
|
-
const total = (pick) => summary.services.reduce((sum, service) => sum + pick(service), 0);
|
|
131
|
+
const total = (pick) => summary.services.reduce((sum, service) => sum + (pick(service) ?? 0), 0);
|
|
127
132
|
const untyped = total((service) => service.routes_without_response_type);
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
133
|
+
const functions = total((service) => service.functions);
|
|
134
|
+
const types = total((service) => service.types);
|
|
135
|
+
const parts = [plural(total((service) => service.routes), "route")];
|
|
136
|
+
if (functions > 0)
|
|
137
|
+
parts.push(plural(functions, "function"));
|
|
138
|
+
if (types > 0)
|
|
139
|
+
parts.push(plural(types, "type"));
|
|
140
|
+
// Named for what it is. Every call in the index crosses a service boundary,
|
|
141
|
+
// and "1 call" beside 363 functions reads as one function call.
|
|
142
|
+
parts.push(plural(total((service) => service.calls), "external call"));
|
|
132
143
|
if (untyped > 0)
|
|
133
144
|
parts.push(`${plural(untyped, "route")} without a response type`);
|
|
134
145
|
return parts.join(" · ");
|
package/dist/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
package/dist/templates.d.ts
CHANGED
|
@@ -3,6 +3,15 @@ export declare const TEMPLATE_NAMES: TemplateName[];
|
|
|
3
3
|
/** Where a repo puts each one. */
|
|
4
4
|
export declare const TEMPLATE_PATHS: Record<TemplateName, string>;
|
|
5
5
|
export declare const DEFAULTS: Record<string, string>;
|
|
6
|
+
/**
|
|
7
|
+
* The directory the shipped template files sit in.
|
|
8
|
+
*
|
|
9
|
+
* Resolved from this module rather than from the process, because the same
|
|
10
|
+
* resolution has to hold in the checkout (`src/../templates`) and in the
|
|
11
|
+
* published emit (`dist/../templates`). `init/task-skills.ts` reads the skill
|
|
12
|
+
* bodies from a subdirectory of it.
|
|
13
|
+
*/
|
|
14
|
+
export declare function templatesDir(): string;
|
|
6
15
|
export declare function templateSource(name: TemplateName): string;
|
|
7
16
|
/**
|
|
8
17
|
* Render one template.
|
package/dist/templates.js
CHANGED
|
@@ -27,7 +27,15 @@ export const DEFAULTS = {
|
|
|
27
27
|
ACTION_REF: "carrick-tools/carrick@v1",
|
|
28
28
|
DEFAULT_BRANCH: "main",
|
|
29
29
|
};
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* The directory the shipped template files sit in.
|
|
32
|
+
*
|
|
33
|
+
* Resolved from this module rather than from the process, because the same
|
|
34
|
+
* resolution has to hold in the checkout (`src/../templates`) and in the
|
|
35
|
+
* published emit (`dist/../templates`). `init/task-skills.ts` reads the skill
|
|
36
|
+
* bodies from a subdirectory of it.
|
|
37
|
+
*/
|
|
38
|
+
export function templatesDir() {
|
|
31
39
|
return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "templates");
|
|
32
40
|
}
|
|
33
41
|
export function templateSource(name) {
|
package/dist/templates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,sEAAsE;AACtE,uDAAuD;AAEvD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,MAAM,SAAS,GAAmC;IAChD,4CAA4C;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE;IAC9E,+DAA+D;IAC/D,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;AAEvE,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,QAAQ,EAAE,+BAA+B;IACzC,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,UAAU,EAAE,0BAA0B;IACtC,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,sEAAsE;AACtE,uDAAuD;AAEvD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,MAAM,SAAS,GAAmC;IAChD,4CAA4C;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE;IAC9E,+DAA+D;IAC/D,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;CACxD,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;AAEvE,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,QAAQ,EAAE,+BAA+B;IACzC,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC9C,UAAU,EAAE,0BAA0B;IACtC,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAkB,EAClB,YAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;IAC7C,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,GAAG,EAAE,CAAC,CAAC;QAC7E,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gBAAgB,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAC3B,YAAoC,EAAE;IAEtC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carrick",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.82",
|
|
4
4
|
"description": "The API contract index for a TypeScript workspace: what the other services do with the routes and calls in the file you are editing, in your editor and in your agent's context",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
"zod": "^3.23.0"
|
|
58
58
|
},
|
|
59
59
|
"optionalDependencies": {
|
|
60
|
-
"@carrick-tools/cli-darwin-arm64": "0.3.
|
|
61
|
-
"@carrick-tools/cli-darwin-x64": "0.3.
|
|
62
|
-
"@carrick-tools/cli-linux-arm64": "0.3.
|
|
63
|
-
"@carrick-tools/cli-linux-x64": "0.3.
|
|
64
|
-
"@carrick-tools/cli-win32-x64": "0.3.
|
|
60
|
+
"@carrick-tools/cli-darwin-arm64": "0.3.82",
|
|
61
|
+
"@carrick-tools/cli-darwin-x64": "0.3.82",
|
|
62
|
+
"@carrick-tools/cli-linux-arm64": "0.3.82",
|
|
63
|
+
"@carrick-tools/cli-linux-x64": "0.3.82",
|
|
64
|
+
"@carrick-tools/cli-win32-x64": "0.3.82"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@types/node": "^24.13.3",
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: carrick-census
|
|
3
|
+
description: Use for every place that does X questions, such as every service that reads this environment variable, every handler that checks a permission, or every client of this queue. Pages the Carrick intent index under two wordings and reports what it read and what it could not see.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Every place that does X
|
|
7
|
+
|
|
8
|
+
{{SCOPE_NOTE}}
|
|
9
|
+
|
|
10
|
+
The index produces the list. Your work is to open each row and confirm what it
|
|
11
|
+
does.
|
|
12
|
+
|
|
13
|
+
## 1. Two wordings
|
|
14
|
+
|
|
15
|
+
Search twice. One query says what the code is for, the other says how it does
|
|
16
|
+
it. A purpose wording misses a helper whose description names only its
|
|
17
|
+
mechanism, and a mechanism wording misses one described only by its job.
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
search_by_intent({{SCOPE}}, query: "<what it is for>", compact: true, top_k: 20)
|
|
21
|
+
search_by_intent({{SCOPE}}, query: "<how it does it>", compact: true, top_k: 20)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`compact: true` returns locator-only rows, which is the shape a census needs.
|
|
25
|
+
Page each query while `has_more` is true:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
search_by_intent({{SCOPE}}, query: "<the same query>", compact: true, top_k: 20, offset: <next_offset>)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Stop when `has_more` is false. Lower `similarity_threshold` where the tail of a
|
|
32
|
+
page is still on topic.
|
|
33
|
+
|
|
34
|
+
## 2. Union
|
|
35
|
+
|
|
36
|
+
Join the two result sets on `file_path` and `line_number`. A row both wordings
|
|
37
|
+
found is one row. Keep `retrieved_by` and `similarity` on each row, and keep
|
|
38
|
+
which wording found it: a row only one wording reached is the row a single
|
|
39
|
+
search would have lost.
|
|
40
|
+
|
|
41
|
+
## 3. Receipt
|
|
42
|
+
|
|
43
|
+
Report these numbers before the list, per query where the field is per query:
|
|
44
|
+
|
|
45
|
+
- rows read, which is the count you paged to;
|
|
46
|
+
- `total_candidates`, the exact size of the ranked list for that query;
|
|
47
|
+
- `total_without_intent`, which is index-wide: functions carrying no intent
|
|
48
|
+
text, which no search looked at;
|
|
49
|
+
- `total_intent_carried_forward` where the response states it, which are intents
|
|
50
|
+
describing the code as of an earlier scan.
|
|
51
|
+
|
|
52
|
+
Then say what the index does not hold for this question. It covers each repo's
|
|
53
|
+
main branch, so a change on a branch is outside it. It indexes functions that
|
|
54
|
+
carry an intent, so a match inside a config file, a template or generated output
|
|
55
|
+
is outside it as well.
|
|
56
|
+
|
|
57
|
+
## 4. Confirm
|
|
58
|
+
|
|
59
|
+
Read each row at `file_path`, from `line_number` to `end_line`. Keep the rows
|
|
60
|
+
that do the thing, and drop the rest with one line each saying what they turned
|
|
61
|
+
out to be. `role` on a row says what the scan joined it to, such as a route
|
|
62
|
+
handler or a client, and a route handler for a different operation is not a hit.
|
|
63
|
+
|
|
64
|
+
## 5. Report
|
|
65
|
+
|
|
66
|
+
| file:line | function | what it does | found by |
|
|
67
|
+
|---|---|---|---|
|
|
68
|
+
| src/billing/charge.ts:88 | chargeCard | reads the billing key | purpose, mechanism |
|
|
69
|
+
|
|
70
|
+
Close with the receipt from step 3, so the list is read against what was
|
|
71
|
+
searched.
|
|
72
|
+
|
|
73
|
+
## 6. Act
|
|
74
|
+
|
|
75
|
+
Change nothing unless you were asked to. Offer one issue per finding that needs
|
|
76
|
+
work, and file the ones accepted:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
gh issue create --title "<concept>: <n> places, <m> need changing" --body "<the table, and the receipt>"
|
|
80
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: carrick-drift
|
|
3
|
+
description: Use when the ask is whether a consumer and a producer still agree on a type, before changing a request or response shape, and when a compatibility verdict names a problem you cannot place. Puts the producer's type, each consumer call site's expected type and the stored verdict side by side.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Where two services disagree about a shape
|
|
7
|
+
|
|
8
|
+
{{SCOPE_NOTE}}
|
|
9
|
+
|
|
10
|
+
`get_contract_pair` holds both sides and the verdict. It reports what the scan
|
|
11
|
+
stored and computes no verdict of its own, and neither do you.
|
|
12
|
+
|
|
13
|
+
## 1. The pairs
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
get_service_graph({{SCOPE}})
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Each edge is a consumer and a producer. An edge carrying `via_sdk` reaches its
|
|
20
|
+
producer through a published package and has no call site of its own. Page with
|
|
21
|
+
`offset: <next_offset>` while the rows keep coming. To start from one service,
|
|
22
|
+
pass `service: "<name>"`.
|
|
23
|
+
|
|
24
|
+
## 2. Each pair, operation by operation
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
get_contract_pair({{SCOPE}}, consumer_service: "<consumer>", producer_service: "<producer>")
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Per operation the answer carries `producer.request` and `producer.response` as
|
|
31
|
+
type ids, `consumer.call_sites` with each site's `file_location`,
|
|
32
|
+
`expected_request` and `expected_response`, and `verdicts`. The `types` array
|
|
33
|
+
holds each distinct type text once, keyed by the id those rows reference.
|
|
34
|
+
Operations are ranked by call-site count then by untyped sides. Page with
|
|
35
|
+
`offset: <next_offset>`, or narrow with `path` and `method`.
|
|
36
|
+
|
|
37
|
+
A verdict's `state` is `compatible`, `incompatible` or `unresolved`, and it
|
|
38
|
+
carries `scanner_version` with `mismatch_reason` or `unresolved_reason` where
|
|
39
|
+
the scan wrote one. One verdict covers the whole consumer and producer pair, so
|
|
40
|
+
every call site on that operation shares it. An operation with `verdicts: []`
|
|
41
|
+
was never judged, and `verdict_note` says so.
|
|
42
|
+
|
|
43
|
+
Honour the wire note. Where `wire_notes` is present, one side declares a field
|
|
44
|
+
as `Date` and the other as `string`. JSON serialises a Date to a string, so
|
|
45
|
+
those two texts can describe the same bytes, and that is not drift.
|
|
46
|
+
|
|
47
|
+
## 3. Class each operation
|
|
48
|
+
|
|
49
|
+
- **MATCH**: the stored verdict is `compatible`.
|
|
50
|
+
- **DRIFT**: the stored verdict is `incompatible`. Name the field and the
|
|
51
|
+
direction, request or response, from `mismatch_reason` and the two type texts.
|
|
52
|
+
- **UNRESOLVED**: the stored verdict is `unresolved`. Report `unresolved_reason`
|
|
53
|
+
as it is written. Then read the two type texts this answer already returned in
|
|
54
|
+
`types`, the producer's side against the call site's expected type, and where
|
|
55
|
+
they differ name the field and say whether it is missing on one side, optional
|
|
56
|
+
on one side and required on the other, or of a different type. Report that as
|
|
57
|
+
"type texts differ", never as a verdict.
|
|
58
|
+
- **NOT JUDGED**: `verdicts` is empty. Relay `verdict_note`, then read the same
|
|
59
|
+
two type texts the same way and report any difference as "type texts differ".
|
|
60
|
+
- **CONSUMER UNTYPED**: a call site's `expected_request` or `expected_response`
|
|
61
|
+
is null on a side that carries one.
|
|
62
|
+
- **PRODUCER UNTYPED**: `producer.request` is null on a method that carries a
|
|
63
|
+
body, or `producer.response` is null.
|
|
64
|
+
|
|
65
|
+
A GET declares no request type by design, and `untyped_sides` already counts it
|
|
66
|
+
that way. The wire note covers both readings above, so a `Date` on one side
|
|
67
|
+
against a `string` on the other is not a difference.
|
|
68
|
+
|
|
69
|
+
## 4. Report
|
|
70
|
+
|
|
71
|
+
| operation | class | producer type | consumer type | call site | verdict |
|
|
72
|
+
|---|---|---|---|---|---|
|
|
73
|
+
| GET /api/orders/:id | DRIFT | Order | OrderSummary | web/src/orders.ts:31 | incompatible |
|
|
74
|
+
| POST /api/orders | UNRESOLVED | NewOrder | OrderDraft | web/src/orders.ts:52 | unresolved; type texts differ on `note` |
|
|
75
|
+
|
|
76
|
+
Class words, and only these: MATCH, DRIFT, UNRESOLVED, NOT JUDGED, CONSUMER
|
|
77
|
+
UNTYPED, PRODUCER UNTYPED. A reading of the two type texts goes in the verdict
|
|
78
|
+
column beside the stored state, in the words "type texts differ", so nothing in
|
|
79
|
+
the table reads as a verdict the index did not give you.
|
|
80
|
+
|
|
81
|
+
State alongside it: `operations_total` against `operations_shown`,
|
|
82
|
+
`matched_calls` and `unmatched_calls`, `dropped_rows`, and the `non_http_note`
|
|
83
|
+
where the pair also carries GraphQL, socket or pub/sub operations, whose type
|
|
84
|
+
text this surface does not hold.
|
|
85
|
+
|
|
86
|
+
## 5. Act
|
|
87
|
+
|
|
88
|
+
Change no type unless you were asked to. Offer one issue per DRIFT, and one per
|
|
89
|
+
UNRESOLVED or NOT JUDGED row whose type texts differ. File the ones accepted:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
gh issue create --title "<consumer> and <producer> disagree on <field> of <operation>" --body "<producer type, consumer type, call sites, stored verdict and scanner version>"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
An UNRESOLVED or NOT JUDGED row holds no verdict on the difference you read, so
|
|
96
|
+
its title says the two sides may disagree and its body carries the reason the
|
|
97
|
+
tool gave in place of a stored verdict:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
gh issue create --title "<consumer> and <producer> may disagree on <field> of <operation>" --body "<producer type, consumer type, call sites, and the unresolved_reason or verdict_note as written>"
|
|
101
|
+
```
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: carrick-impact
|
|
3
|
+
description: Use before changing or removing a route, a handler, a response shape, an event, or a function other code calls, and whenever the ask is who calls this, who consumes this endpoint, or what breaks if I change it. Names every producer and consumer call site the Carrick index holds, with file and line.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Who depends on what you are about to change
|
|
7
|
+
|
|
8
|
+
{{SCOPE_NOTE}}
|
|
9
|
+
|
|
10
|
+
Carrick finds the call sites. Your work is to open them, decide whether each one
|
|
11
|
+
breaks, and act.
|
|
12
|
+
|
|
13
|
+
## 1. Name the thing
|
|
14
|
+
|
|
15
|
+
A route, a GraphQL field, a socket event or a pub/sub topic: its method label
|
|
16
|
+
and its path, as the index spells them. A function: its name, and the file it is
|
|
17
|
+
defined in.
|
|
18
|
+
|
|
19
|
+
## 2. Producers and consumers
|
|
20
|
+
|
|
21
|
+
For an operation:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
get_operation({{SCOPE}}, method: "<METHOD>", path: "<path>")
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Four sections carry the answer.
|
|
28
|
+
|
|
29
|
+
- `producers`: every service that serves it, with `file_location` and `source`.
|
|
30
|
+
- `consumers`: every call site that reaches it, with `services`,
|
|
31
|
+
`call_file_location`, `via` (the function the call is written through, where
|
|
32
|
+
the index names one) and `source`.
|
|
33
|
+
- `unmatched_calls`: recorded calls that resolved to no producer.
|
|
34
|
+
- the near-miss sections: rows the index holds under a neighbouring method or a
|
|
35
|
+
path one segment away. Read them as candidates to check in source, never as
|
|
36
|
+
consumers of the operation you asked for.
|
|
37
|
+
|
|
38
|
+
`source` is `fact: …` where a deterministic pass stated the row and
|
|
39
|
+
`candidate: …` where the model did. Both are claims about the same path, so the
|
|
40
|
+
label belongs in your table.
|
|
41
|
+
|
|
42
|
+
For a function:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
get_callers({{SCOPE}}, function_name: "<name>", file: "<file>", depth: 1)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Each row names the enclosing caller and its line span, not the call-site line.
|
|
49
|
+
Raise `depth` to 2 or 3 for transitive callers. Zero recorded callers is not
|
|
50
|
+
deletion evidence, because a function passed as a value is unmeasured.
|
|
51
|
+
|
|
52
|
+
## 3. Verdicts, one consumer at a time
|
|
53
|
+
|
|
54
|
+
For each consumer service the step above listed:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
check_compatibility({{SCOPE}}, consumer_service: "<consumer>", producer_service: "<producer>", path: "<path>")
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Pass `path`. Without it a large producer returns hundreds of rows. Read
|
|
61
|
+
`type_verdicts` (`compatible`, `incompatible`, `unresolved`, `not_compared`) and
|
|
62
|
+
the `issues` rows for this operation. A `not_compared` pair has no stored
|
|
63
|
+
verdict, which is never agreement.
|
|
64
|
+
|
|
65
|
+
## 4. A file you have already edited
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
carrick check <file> --recheck --json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`items[]` holds this file's routes and calls with their `counterparts` and
|
|
72
|
+
`verdict`, judged against the working tree. `recheck.ran` says which answer came
|
|
73
|
+
back: `extraction+types` and `extraction` describe the tree, and `none` means
|
|
74
|
+
the rows are the indexed ones with `recheck.reason` saying why. `boundary_note`
|
|
75
|
+
states what the local run could not classify.
|
|
76
|
+
|
|
77
|
+
## 5. Report
|
|
78
|
+
|
|
79
|
+
One table, then the detail.
|
|
80
|
+
|
|
81
|
+
| consumer service | call site | verdict | source |
|
|
82
|
+
|---|---|---|---|
|
|
83
|
+
| admin-ui | src/api/orders.ts:44 | INCOMPATIBLE | fact |
|
|
84
|
+
|
|
85
|
+
Verdict words, and only these: COMPATIBLE, INCOMPATIBLE, UNRESOLVED,
|
|
86
|
+
NOT COMPARED. In the same message, state:
|
|
87
|
+
|
|
88
|
+
- the producers, with file and line;
|
|
89
|
+
- unmatched calls and near misses, listed apart from consumers;
|
|
90
|
+
- the counts the responses carried: `consumer_count`, `consumers_outside_service`
|
|
91
|
+
where present, and `issues_total` against the rows you read.
|
|
92
|
+
|
|
93
|
+
Two limits belong in the report wherever they apply. A route added on your
|
|
94
|
+
branch has no consumers on main, so an empty consumer list says nothing about
|
|
95
|
+
it. A call whose URL is built at the call site can be recorded under the wrong
|
|
96
|
+
method, which is what the near-miss rows exist to show.
|
|
97
|
+
|
|
98
|
+
## 6. Act
|
|
99
|
+
|
|
100
|
+
Confirm each consumer in source before you call it broken. Change no consumer
|
|
101
|
+
code unless you were asked to. Then offer one issue per finding, and file the
|
|
102
|
+
ones accepted:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
gh issue create --title "<consumer> breaks on <METHOD> <path>" --body "<call site, what it expects, what the producer now sends>"
|
|
106
|
+
```
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: carrick-reuse
|
|
3
|
+
description: Use at the end of a task that added or changed functions, and whenever the ask is whether something already exists, whether this duplicates code elsewhere, or where this project has built the same thing twice. Compares against the Carrick function index rather than by name.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# What already does this
|
|
7
|
+
|
|
8
|
+
{{SCOPE_NOTE}}
|
|
9
|
+
|
|
10
|
+
`find_similar` does the comparison. Your work is to read both spans and class
|
|
11
|
+
each pair.
|
|
12
|
+
|
|
13
|
+
## Targeted: the functions this task added or changed
|
|
14
|
+
|
|
15
|
+
One call, up to 20 entries, run once at the end of the task.
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
find_similar({{SCOPE}}, functions: [
|
|
19
|
+
{ name: "<Class.member or name>", file: "<path suffix>" },
|
|
20
|
+
{ description: "<one plain sentence about a function that is not indexed yet>" }
|
|
21
|
+
])
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
An entry is either a `name` with a `file` for a function the index holds, or a
|
|
25
|
+
`description` for code you are about to write or have just written. Use one or
|
|
26
|
+
the other in an entry, never both. A `name` that matches more than one
|
|
27
|
+
definition comes back with its candidates on that entry's `error`.
|
|
28
|
+
|
|
29
|
+
The two kinds are scored on different scales and the response states both
|
|
30
|
+
floors: 0.85 between two indexed functions, 0.45 for a description. A stored
|
|
31
|
+
vector carries the function's name in front of its intent and a bare sentence
|
|
32
|
+
does not, so a description scoring 0.5 is a hit worth reading.
|
|
33
|
+
|
|
34
|
+
## Audit: the whole project
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
find_similar({{SCOPE}})
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`clusters` groups functions that describe the same behaviour, ordered by size.
|
|
41
|
+
Page with `offset: <next_offset>` while `has_more` is true. A group is
|
|
42
|
+
transitive, so `lowest_similarity` can sit under the floor and a large group can
|
|
43
|
+
hold more than one idea.
|
|
44
|
+
|
|
45
|
+
Where the project is larger than one pass, the response carries `error` in place
|
|
46
|
+
of clusters and names the two routes under the ceiling: a `service`, or a higher
|
|
47
|
+
`min_lines`. Take the route the response names and run it again. Where
|
|
48
|
+
`truncated` is present the audit is partial, and its `scanned_functions` of `of`
|
|
49
|
+
says by how much.
|
|
50
|
+
|
|
51
|
+
## Class each pair
|
|
52
|
+
|
|
53
|
+
Read both spans in source, then class:
|
|
54
|
+
|
|
55
|
+
- **DUPLICATE**: the same behaviour, and one call site could use the other.
|
|
56
|
+
- **VARIANT**: near neighbours that cannot share an implementation. Say in one
|
|
57
|
+
line why they cannot.
|
|
58
|
+
- **FALSE POSITIVE**: the index describes them alike and the code does different
|
|
59
|
+
work.
|
|
60
|
+
|
|
61
|
+
`matched_on` says which signal joined a row. `similarity` is the intent vectors;
|
|
62
|
+
`intent_text` is two identical intent sentences, which is the signal that still
|
|
63
|
+
finds a copy somebody renamed.
|
|
64
|
+
|
|
65
|
+
## Report
|
|
66
|
+
|
|
67
|
+
| class | function | file:line | pair | why |
|
|
68
|
+
|---|---|---|---|---|
|
|
69
|
+
| DUPLICATE | slugify | src/text.ts:12 | src/util/url.ts:4 | same replacement rules |
|
|
70
|
+
|
|
71
|
+
Then relay the counts the response stated, in its numbers:
|
|
72
|
+
|
|
73
|
+
- `compared_functions`, and `total_clusters` on an audit;
|
|
74
|
+
- `not_compared`: `without_intent`, `intent_not_embedded`, `awaiting_embedding`,
|
|
75
|
+
`model_mismatch`;
|
|
76
|
+
- `excluded`: `below_min_lines`, `tests`, `generated`, `callbacks`,
|
|
77
|
+
`other_service`.
|
|
78
|
+
|
|
79
|
+
Rows outside the comparison were not looked at, so an empty answer covers what
|
|
80
|
+
was compared and nothing further.
|
|
81
|
+
|
|
82
|
+
## Act
|
|
83
|
+
|
|
84
|
+
Merge nothing unless you were asked to. Offer one issue per DUPLICATE, and file
|
|
85
|
+
the ones accepted:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
gh issue create --title "Duplicate: <behaviour> in <n> files" --body "<each file:line, and which one should remain>"
|
|
89
|
+
```
|