@openagt/skill-branches 0.1.3 → 0.1.5

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/SKILL.md ADDED
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: branches
3
+ description: Where your work goes (a branch named agent-<name>), how to name it, what must be true before you finish, and how to push it when you are asked to.
4
+ package: "@openagt/skill-branches@0.1"
5
+ ---
6
+
7
+ # Branch management
8
+
9
+ Your work goes on a branch named `agent-<name>`, unless whoever started you continued you on another. It stays on this machine until you are asked to push it.
10
+
11
+ ## The command
12
+
13
+ Run the `branches` command inside your checkout, always by its full name: `npx @openagt/skill-branches@0.1`. `status`, `name` and `push` (with no flag) are yours; the rest are the caller's.
14
+
15
+ ## Where you are
16
+
17
+ ```
18
+ npx @openagt/skill-branches@0.1 status
19
+ ```
20
+
21
+ It prints JSON; `branch` is the branch you are on.
22
+
23
+ **A branch starting with `agent-`.** Its checkout is your whole workspace: read and write only there. Dependency files and skill folders are links to the user's copies: never edit them. If something you need is outside your checkout, say so and stop.
24
+
25
+ Before your first change, name the session with `[a-z0-9-]+`, starting with a letter or digit, saying what the work is, unless your branch already differs from `path`'s last segment: then it is named, keep it.
26
+
27
+ ```
28
+ npx @openagt/skill-branches@0.1 name <name>
29
+ ```
30
+
31
+ It renames your branch to `agent-<name>` and prints it in `branch`: `agent-<name>-2`, `-3`, … when `<name>` was taken; a name outside `[a-z0-9-]+` is refused as `invalid-name`.
32
+
33
+ **Any other branch.** If the checkout sits under `.branches/`, you were put on this branch on purpose: stay on it, do not name it. Otherwise you are in a plain clone on someone else's branch. Before your first change, create your own and switch to it, `<name>` as above (another if it exists, locally or on origin):
34
+
35
+ ```
36
+ git switch -c agent-<name>
37
+ ```
38
+
39
+ From then on, work as on an `agent-` branch; nothing in a plain clone is a link.
40
+
41
+ ## Commit as you go
42
+
43
+ Nothing is committed for you.
44
+
45
+ ## Before you finish
46
+
47
+ ```
48
+ npx @openagt/skill-branches@0.1 status
49
+ ```
50
+
51
+ It must report `"clean": true`. `clean` is false while anything is uncommitted or untracked: commit or delete what you added; if what remains is not yours, say so and finish.
52
+
53
+ ## Push
54
+
55
+ Only when your task or the person asks you to push or publish your work, and once clean:
56
+
57
+ ```
58
+ npx @openagt/skill-branches@0.1 push
59
+ ```
60
+
61
+ It pushes your branch to origin and prints it in `branch`. `clean` false is refused as `dirty`: commit or delete first.
62
+
63
+ ## Merge
64
+
65
+ Only when the person asks you to merge your work into the project's main branch, and once clean:
66
+
67
+ ```
68
+ npx @openagt/skill-branches@0.1 merge <your branch>
69
+ ```
70
+
71
+ It merges your branch into the main branch, in the project's own folder. A conflict changes nothing and names the files in `files`: say so and stop. Your checkout and your branch stay.
@@ -14,8 +14,8 @@ import { type GitRunner } from '@openagt/agent-data';
14
14
  * The package is linked only beside its own commands. Beside another tool that holds a command's
15
15
  * name in the project, the full name would run that tool, so there it is left to npm.
16
16
  *
17
- * Hidden from the project's git through the repository's exclude file, like a skill's link: a link
18
- * is the package's state, not the agent's work. Best-effort: an entry already there (the project's
17
+ * Hidden from the project's git through the repository's exclude file: a link is the package's
18
+ * state, not the agent's work, and `node_modules` is never a person's. Best-effort: an entry already there (the project's
19
19
  * own copy) is left alone, a link of this package's that points nowhere is made again, and a link
20
20
  * that cannot be made is a worse run, not a failed one.
21
21
  */
@@ -37,11 +37,11 @@ export interface SkillLink {
37
37
  export declare const OWN_SKILL: SkillLink;
38
38
  /**
39
39
  * Link the skill into `checkout` for every harness — this package's own, plus whatever `skills`
40
- * the caller names (see {@link SkillLink}) — and hide the links from the project's git
41
- * through the repository's exclude file: a symlink at the checkout root would otherwise ride any
42
- * sweeping `git add -A` onto the agent's branch. Best-effort: an entry already at a link's path is
43
- * left alone and gets no rule, a link of this package's that points nowhere is made again, and a
44
- * link that cannot be made is a worse run, not a failed one.
40
+ * the caller names (see {@link SkillLink}) — and hide the links from the project's git (see
41
+ * {@link hideLink}): a symlink at the checkout root would otherwise ride any sweeping `git add -A`
42
+ * onto the agent's branch. Best-effort: an entry already at a link's path is left alone and is not
43
+ * hidden, a link of this package's that points nowhere is made again, and a link that cannot be
44
+ * made is a worse run, not a failed one.
45
45
  */
46
46
  export declare function linkSkill(repo: string, checkout: string, fs?: LinkFs, git?: GitRunner, skills?: readonly SkillLink[]): Promise<void>;
47
47
  /** The paths of a skill's links, relative to a checkout: its text for every harness, and its package's links when it has one. */
@@ -1 +1 @@
1
- {"version":3,"file":"skill-links.d.ts","sourceRoot":"","sources":["../src/skill-links.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAkB,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAA8C,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEhG;;;;;;;;GAQG;AAEH,6GAA6G;AAC7G,eAAO,MAAM,UAAU,aAAa,CAAA;AAEpC,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,YAAI,gBAAgB,EAAE,gBAAgB,CAAU,CAAA;AAE/E;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAsD,CAAA;AAE5E;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,uIAAuI;IACvI,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB;AAED,wDAAwD;AACxD,eAAO,MAAM,SAAS,EAAE,SAAgD,CAAA;AAExE;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,EAAE,GAAE,MAAqB,EACzB,GAAG,GAAE,SAA2B,EAChC,MAAM,GAAE,SAAS,SAAS,EAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,iIAAiI;AACjI,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAEzD"}
1
+ {"version":3,"file":"skill-links.d.ts","sourceRoot":"","sources":["../src/skill-links.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,SAAS,EAAkB,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAA8C,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEhG;;;;;;;;GAQG;AAEH,6GAA6G;AAC7G,eAAO,MAAM,UAAU,aAAa,CAAA;AAEpC,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,YAAI,gBAAgB,EAAE,gBAAgB,CAAU,CAAA;AAE/E;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAsD,CAAA;AAE5E;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,uIAAuI;IACvI,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB;AAED,wDAAwD;AACxD,eAAO,MAAM,SAAS,EAAE,SAAgD,CAAA;AAExE;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,EAAE,GAAE,MAAqB,EACzB,GAAG,GAAE,SAA2B,EAChC,MAAM,GAAE,SAAS,SAAS,EAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,iIAAiI;AACjI,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAEzD"}
@@ -1,3 +1,4 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
1
2
  import { dirname, join } from 'node:path';
2
3
  import { fileURLToPath } from 'node:url';
3
4
  import { nodeGitRunner, excludeFromGit } from '@openagt/agent-data';
@@ -25,11 +26,11 @@ export const SKILL_DIR = join(dirname(fileURLToPath(import.meta.url)), '..');
25
26
  export const OWN_SKILL = { name: SKILL_NAME, dir: SKILL_DIR };
26
27
  /**
27
28
  * Link the skill into `checkout` for every harness — this package's own, plus whatever `skills`
28
- * the caller names (see {@link SkillLink}) — and hide the links from the project's git
29
- * through the repository's exclude file: a symlink at the checkout root would otherwise ride any
30
- * sweeping `git add -A` onto the agent's branch. Best-effort: an entry already at a link's path is
31
- * left alone and gets no rule, a link of this package's that points nowhere is made again, and a
32
- * link that cannot be made is a worse run, not a failed one.
29
+ * the caller names (see {@link SkillLink}) — and hide the links from the project's git (see
30
+ * {@link hideLink}): a symlink at the checkout root would otherwise ride any sweeping `git add -A`
31
+ * onto the agent's branch. Best-effort: an entry already at a link's path is left alone and is not
32
+ * hidden, a link of this package's that points nowhere is made again, and a link that cannot be
33
+ * made is a worse run, not a failed one.
33
34
  */
34
35
  export async function linkSkill(repo, checkout, fs = nodeLinkFs(), git = nodeGitRunner(), skills = []) {
35
36
  for (const skill of [OWN_SKILL, ...skills]) {
@@ -37,11 +38,11 @@ export async function linkSkill(repo, checkout, fs = nodeLinkFs(), git = nodeGit
37
38
  const rel = `${dir}/${skill.name}`;
38
39
  try {
39
40
  const path = join(checkout, rel);
40
- // The project's own copy, tracked or not, stays, and gets no rule: a rule would hide what a person adds there.
41
+ // The project's own copy, tracked or not, stays, and is not hidden: that would hide what a person adds there.
41
42
  if (await entryExists(path))
42
43
  continue;
43
- await excludeFromGit(repo, `/${rel}`, undefined, git).catch(() => { });
44
44
  await fs.mkdir(join(checkout, dir));
45
+ await hideLink(repo, checkout, dir, skill.name, git).catch(() => { });
45
46
  await fs.symlinkDir(skill.dir, path);
46
47
  }
47
48
  catch {
@@ -56,4 +57,24 @@ export async function linkSkill(repo, checkout, fs = nodeLinkFs(), git = nodeGit
56
57
  export function skillLinkPaths(skill) {
57
58
  return [...HARNESS_SKILL_DIRS.map(dir => `${dir}/${skill.name}`), ...(skill.package ? packageLinkPaths(skill.package) : [])];
58
59
  }
60
+ /** The file a skill's link is hidden by, in the folder the link is in. */
61
+ const IGNORE_FILE = '.gitignore';
62
+ /**
63
+ * Hide the link `<dir>/<name>` by a line in `<dir>/.gitignore` of the agent's checkout, a file that
64
+ * names itself too, so it is hidden as well. The file is in that checkout only: a person who adds a
65
+ * skill of the same name in their own checkout sees it in git, where a rule in the repository's
66
+ * exclude file, read by every checkout of it, hid it from them too. A project that tracks its own
67
+ * `<dir>/.gitignore` gets no line in it, which would be work for the agent to commit: there the
68
+ * link is hidden by the repository's exclude file.
69
+ */
70
+ async function hideLink(repo, checkout, dir, name, git) {
71
+ const tracked = (await git(['ls-files', '--', `${dir}/${IGNORE_FILE}`], checkout)).trim() !== '';
72
+ if (tracked)
73
+ return excludeFromGit(repo, `/${dir}/${name}`, undefined, git);
74
+ const file = join(checkout, dir, IGNORE_FILE);
75
+ const current = await readFile(file, 'utf8').catch(() => `/${IGNORE_FILE}\n`);
76
+ if (current.split('\n').includes(`/${name}`))
77
+ return;
78
+ await writeFile(file, (current.endsWith('\n') ? current : `${current}\n`) + `/${name}\n`);
79
+ }
59
80
  //# sourceMappingURL=skill-links.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-links.js","sourceRoot":"","sources":["../src/skill-links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAkB,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAA;AAEhG;;;;;;;;GAQG;AAEH,6GAA6G;AAC7G,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAA;AAEpC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAU,CAAA;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAiB5E,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA;AAExE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAY,EACZ,QAAgB,EAChB,EAAE,GAAW,UAAU,EAAE,EACzB,GAAG,GAAc,aAAa,EAAE,EAChC,MAAM,GAAyB,EAAE;IAEjC,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;gBAChC,+GAA+G;gBAC/G,IAAI,MAAM,WAAW,CAAC,IAAI,CAAC;oBAAE,SAAQ;gBACrC,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBACrE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;gBACnC,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;YACnF,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,OAAO;YAAE,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC1E,CAAC;AACH,CAAC;AAED,iIAAiI;AACjI,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC7C,OAAO,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9H,CAAC"}
1
+ {"version":3,"file":"skill-links.js","sourceRoot":"","sources":["../src/skill-links.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openagt/skill-branches",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Branch management for coding agents: one git checkout per agent under .branches/, named as its branch, reclaimed once its work is on the remote.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -39,7 +39,7 @@
39
39
  }
40
40
  },
41
41
  "dependencies": {
42
- "@openagt/agent-data": "0.0.8"
42
+ "@openagt/agent-data": "0.0.9"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^20.0.0",