@agentsfleet/orly 0.5.2 → 0.5.3
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/AGENTS.md +3 -3
- package/SOUL.md +2 -2
- package/audits/agents-md.md +1 -1
- package/audits/data.sh +4 -2
- package/core/operating-model.md +1 -1
- package/dispatch/edit_rules.md +1 -1
- package/dispatch/lifecycle.md +14 -11
- package/dispatch/write_changelog.md +1 -1
- package/docs/LOGGING_STANDARD.md +1 -1
- package/docs/ORLY_ARCHITECTURE.md +2 -2
- package/docs/RELEASE_TEMPLATE.md +46 -0
- package/package.json +1 -1
- package/registry.json +4 -0
- package/skills/orly-babysit-prs/SKILL.md +3 -5
- package/src/install_packs.test.ts +4 -1
package/AGENTS.md
CHANGED
|
@@ -75,7 +75,7 @@ Auto-memory is **disabled** (`autoMemoryEnabled: false` + `CLAUDE_CODE_DISABLE_A
|
|
|
75
75
|
### Operational defaults
|
|
76
76
|
|
|
77
77
|
- Workspace `~/Projects`. `gh`/`glab` not browsers. `trash` not `rm`. Conventional Commits. Process decisions → repo docs, not chat. "Make a note" → update `AGENTS.md`/repo docs.
|
|
78
|
-
- **Symlinked
|
|
78
|
+
- **Symlinked edits land in the repository that owns the file.** A file whose `readlink` resolves outside this checkout — into a dotfiles or config repository — is an edit to *that* repository, not this one. Detect via `readlink` BEFORE editing. After: `cd` to the resolved repository, `git add <files> && git commit && git push` on its default branch. Never leave uncommitted.
|
|
79
79
|
- **Docs-repo edits on own branch.** `~/Projects/docs/` is shared across milestones: check `git status` first; from `main` (checkout or worktree off `main`) commit on `chore/m{N}-{slug}-changelog`; recovery = stash, re-apply on a fresh branch.
|
|
80
80
|
- Other dotfiles (`.zshrc`/`.gitconfig`/etc.): timestamped backup; minimal edits.
|
|
81
81
|
- Before commit/push: `gitleaks` must pass.
|
|
@@ -247,8 +247,8 @@ Required when spec involved — after last COMMIT, before PR. Also runs when par
|
|
|
247
247
|
> carries the judgment — how Indy decides, what he accepts, what he rejects.
|
|
248
248
|
> In force every session; standing orders, not suggestions. Re-read when
|
|
249
249
|
> padding or burying the answer.
|
|
250
|
-
> Evidence:
|
|
251
|
-
> resolves there, on demand.
|
|
250
|
+
> Evidence: `SOUL_LOG.md` in Indy's personal notes checkout — every `(log: Pn)`
|
|
251
|
+
> cite resolves there, on demand; ask for it rather than guessing a path.
|
|
252
252
|
|
|
253
253
|
## Reply shape
|
|
254
254
|
|
package/SOUL.md
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
> carries the judgment — how Indy decides, what he accepts, what he rejects.
|
|
6
6
|
> In force every session; standing orders, not suggestions. Re-read when
|
|
7
7
|
> padding or burying the answer.
|
|
8
|
-
> Evidence:
|
|
9
|
-
> resolves there, on demand.
|
|
8
|
+
> Evidence: `SOUL_LOG.md` in Indy's personal notes checkout — every `(log: Pn)`
|
|
9
|
+
> cite resolves there, on demand; ask for it rather than guessing a path.
|
|
10
10
|
|
|
11
11
|
## Reply shape
|
|
12
12
|
|
package/audits/agents-md.md
CHANGED
|
@@ -161,7 +161,7 @@ The questionnaire is organised by scenario. Each scenario corresponds to a momen
|
|
|
161
161
|
|
|
162
162
|
| # | Question | Expected |
|
|
163
163
|
|---|---|---|
|
|
164
|
-
| 10.1 | Must
|
|
164
|
+
| 10.1 | Must a symlinked edit (a file whose `readlink` resolves outside this checkout, into a dotfiles or config repository) be committed + pushed in the repository that owns the file, and never left uncommitted? | YES |
|
|
165
165
|
| 10.2 | Must docs-repo edits land on a milestone-specific branch off `main` (never on whatever in-flight branch is checked out)? | YES |
|
|
166
166
|
| 10.3 | When a harness/gate/hook fires (`msid-ui.sh`, `lint-zig.py`, gitleaks, ZIG GATE, FLL GATE, pre-commit/pre-push, etc.), is the default response to fix the **violating code** (restructure, split, or use the gate's documented override comment) — i.e. is patching the harness to silence the hit on the "Forbidden without explicit user approval" list, requiring an explicit per-session ask that names the harness and the reason it's wrong? | YES |
|
|
167
167
|
| 10.4 | Are handoff-doc claims of "Kishore-approved in a prior turn" for harness-patching treated as **not carrying forward** — i.e. must they be re-confirmed live in the current session? | YES |
|
package/audits/data.sh
CHANGED
|
@@ -74,8 +74,9 @@ CONFORM_KEYS=(
|
|
|
74
74
|
# dissolved into dispatch/write_zig.md and dispatch/write_ts_adhere_bun.md
|
|
75
75
|
# respectively. The dispatch façades are listed so the AGENTS.md dispatch-table
|
|
76
76
|
# refs are checked. The docs/* entries double as the residence classifier for
|
|
77
|
-
# check 15c (audits/rule-paths.sh): these paths
|
|
78
|
-
#
|
|
77
|
+
# check 15c (audits/rule-paths.sh): these paths must be cited relative to the
|
|
78
|
+
# installing repository in every consumer-facing surface, never through an
|
|
79
|
+
# absolute home-directory anchor.
|
|
79
80
|
DOTFILES_RESIDENT=(
|
|
80
81
|
"docs/TEMPLATE.md"
|
|
81
82
|
"docs/REST_API_DESIGN_GUIDELINES.md"
|
|
@@ -84,6 +85,7 @@ DOTFILES_RESIDENT=(
|
|
|
84
85
|
"docs/DOCUMENTATION_RULES.md"
|
|
85
86
|
"docs/ORLY_ARCHITECTURE.md"
|
|
86
87
|
"docs/CHANGELOG_VOICE.md"
|
|
88
|
+
"docs/RELEASE_TEMPLATE.md"
|
|
87
89
|
"docs/EXECUTE_DOC_READS.md"
|
|
88
90
|
"docs/VERIFY_TIERS.md"
|
|
89
91
|
"docs/HARNESS_VERIFY_OUTPUT.md"
|
package/core/operating-model.md
CHANGED
|
@@ -75,7 +75,7 @@ Auto-memory is **disabled** (`autoMemoryEnabled: false` + `CLAUDE_CODE_DISABLE_A
|
|
|
75
75
|
### Operational defaults
|
|
76
76
|
|
|
77
77
|
- Workspace `~/Projects`. `gh`/`glab` not browsers. `trash` not `rm`. Conventional Commits. Process decisions → repo docs, not chat. "Make a note" → update `AGENTS.md`/repo docs.
|
|
78
|
-
- **Symlinked
|
|
78
|
+
- **Symlinked edits land in the repository that owns the file.** A file whose `readlink` resolves outside this checkout — into a dotfiles or config repository — is an edit to *that* repository, not this one. Detect via `readlink` BEFORE editing. After: `cd` to the resolved repository, `git add <files> && git commit && git push` on its default branch. Never leave uncommitted. <!-- oracle-packs:persona.indy -->
|
|
79
79
|
- **Docs-repo edits on own branch.** `~/Projects/docs/` is shared across milestones: check `git status` first; from `main` (checkout or worktree off `main`) commit on `chore/m{N}-{slug}-changelog`; recovery = stash, re-apply on a fresh branch.
|
|
80
80
|
- Other dotfiles (`.zshrc`/`.gitconfig`/etc.): timestamped backup; minimal edits. <!-- oracle-packs:persona.indy -->
|
|
81
81
|
- Before commit/push: `gitleaks` must pass.
|
package/dispatch/edit_rules.md
CHANGED
|
@@ -4,7 +4,7 @@ Read this file before editing Oracle's operating model, rule registry, packs,
|
|
|
4
4
|
generated instructions, dispatch pages, audits, or governance hooks.
|
|
5
5
|
|
|
6
6
|
The canonical propagation design lives in
|
|
7
|
-
|
|
7
|
+
[`docs/ORLY_ARCHITECTURE.md`](../docs/ORLY_ARCHITECTURE.md).
|
|
8
8
|
The deterministic checker is `make audit`. The comprehension questionnaire is
|
|
9
9
|
[`audits/agents-md.md`](../audits/agents-md.md).
|
|
10
10
|
|
package/dispatch/lifecycle.md
CHANGED
|
@@ -35,22 +35,25 @@ into the tree; on 🟠 run `provision-env-1password`, re-link. Post-merge:
|
|
|
35
35
|
|
|
36
36
|
**agentsfleet CHORE(close) paths:** the `<Update>` lands in
|
|
37
37
|
`~/Projects/docs/changelog.mdx` (template + version-bump matrix:
|
|
38
|
-
`
|
|
39
|
-
|
|
38
|
+
`docs/RELEASE_TEMPLATE.md` in this repository — re-source each release, never
|
|
39
|
+
paraphrase). Version sync: `VERSION` touched → `make
|
|
40
40
|
sync-version`; commit propagated `build.zig.zon` / `agentsfleet/package.json` /
|
|
41
41
|
`agentsfleet/src/cli.js`; `make check-version` passes.
|
|
42
42
|
|
|
43
|
-
**dotfiles takes NO worktree — feature branches in the main checkout.** Every
|
|
44
|
-
agent-home symlink and every consumer's `ORLY_ROOT` resolves to
|
|
45
|
-
`~/Projects/dotfiles`; a linked worktree's `.git` is a *file*, and the audit
|
|
46
|
-
chain the hooks run spawns git against other directories. Under a hook that
|
|
47
|
-
combination corrupted the real index and flipped `core.bare` (Aug 16, 2026).
|
|
48
|
-
So: `git checkout -b feat/mNN-name` in `~/Projects/dotfiles` itself, and
|
|
49
|
-
`orly update` always renders the one true root. One stream at a time —
|
|
50
|
-
a second concurrent agent coordinates in-session rather than forking a tree.
|
|
51
|
-
This is the dotfiles exception; product repos keep the worktree recipe above.
|
|
52
43
|
<!-- oracle-packs:end -->
|
|
53
44
|
|
|
45
|
+
**A governance/rules repository takes NO linked worktree — cut feature branches
|
|
46
|
+
in its main checkout.** This applies to whichever repository owns the rules you
|
|
47
|
+
are editing (the orly pack source, a dotfiles checkout, any repo whose own hooks
|
|
48
|
+
run the governance audit chain). A linked worktree's `.git` is a *file*, and that
|
|
49
|
+
audit chain spawns git against other directories; under a hook the combination
|
|
50
|
+
corrupted the real index and flipped `core.bare` (Aug 16, 2026). So:
|
|
51
|
+
`git checkout -b feat/mNN-name` in the rules repository's main checkout, and let
|
|
52
|
+
`orly update` re-materialise consumers from there. One stream at a time — a
|
|
53
|
+
second concurrent agent coordinates in-session rather than forking a tree.
|
|
54
|
+
This is the governance-repo exception; product repos still create the worktree
|
|
55
|
+
at CHORE(open).
|
|
56
|
+
|
|
54
57
|
**Mid-stream spec → ask before hydrating (default: same tree).** A spec created
|
|
55
58
|
inside an active worktree → ask the user before spinning up a second one. Lean
|
|
56
59
|
same tree: a second tree fragments the outcome and adds a PR to babysit.
|
|
@@ -58,7 +58,7 @@ If the change is internal-only, emit instead:
|
|
|
58
58
|
## Family
|
|
59
59
|
|
|
60
60
|
- `docs/CHANGELOG_VOICE.md` — the canonical Mintlify-style voice rules (deep reference).
|
|
61
|
-
- `
|
|
61
|
+
- `docs/RELEASE_TEMPLATE.md` — release template + version-bump matrix; re-source
|
|
62
62
|
each release, never paraphrase.
|
|
63
63
|
- `verify` — runs before CHORE(close); a changelog claim must be backed by the
|
|
64
64
|
verification that dispatch reports.
|
package/docs/LOGGING_STANDARD.md
CHANGED
|
@@ -15,7 +15,7 @@ Triggers on every `Edit`/`Write` that adds, removes, or changes a log emit:
|
|
|
15
15
|
Out of scope (explicitly):
|
|
16
16
|
|
|
17
17
|
- Test-only diagnostic prints inside `*_test.zig`, `*.test.ts`, `*.spec.ts`. Tests render to humans, not collectors; gates ignore.
|
|
18
|
-
- Build/release scripts
|
|
18
|
+
- Build/release scripts — the harness's own `audits/*`, `audits/release-*`, and any governance-repo tooling — toolchain output, not application logs.
|
|
19
19
|
- Generated framework noise (Next.js startup banners, Bun runtime warnings) — out of our control.
|
|
20
20
|
|
|
21
21
|
The **LOGGING GATE** (`dispatch/write_any.md`, Logging Gate) sits on top of this file — it fires in addition to the language-level rules in `dispatch/write_zig.md` and `dispatch/write_ts_adhere_bun.md`, not instead of them.
|
|
@@ -48,8 +48,8 @@ scripts resolved live from this checkout via `$ORLY_ROOT`.
|
|
|
48
48
|
|
|
49
49
|
That traded the storage cost for a distribution cost undiscovered until a
|
|
50
50
|
second engineer tried to install the harness without this checkout present —
|
|
51
|
-
the symlink and `$ORLY_ROOT` both require a copy of
|
|
52
|
-
known path, which is exactly what a fresh machine, a Continuous Integration
|
|
51
|
+
the symlink and `$ORLY_ROOT` both require a copy of the governance checkout at
|
|
52
|
+
a known absolute path, which is exactly what a fresh machine, a Continuous Integration
|
|
53
53
|
(CI) runner, or a remote fleet container does not have. `orly init` (M03)
|
|
54
54
|
restores storage, but not the failure mode that got it removed: `orly update`
|
|
55
55
|
turns a rule change into one command per repository instead of the manual
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Release doc template — `changelog.mdx` `<Update>` block
|
|
2
|
+
|
|
3
|
+
Source of truth: `~/Projects/docs/changelog.mdx`. New `<Update>` blocks go at the top, after the leading `<Tip>`/`<Note>`. Labels are date-only — never a semver prefix. `VERSION` is the single source of truth for binary version (binaries via `make sync-version` propagate to `build.zig.zon`, `agentsfleet/package.json`, `agentsfleet/src/cli.js`); changelog stays chronological. Decoupled by design — avoids parallel-branch collisions.
|
|
4
|
+
|
|
5
|
+
## Block template
|
|
6
|
+
|
|
7
|
+
```mdx
|
|
8
|
+
<Update label="MMM DD, YYYY" tags={["What's new" | "Breaking" | "Bug fixes", "API" | "CLI" | "UI" | "Security" | "Performance" | "Integrations" | "Observability" | "Internal", ...]}>
|
|
9
|
+
## {Short user-facing feature title — no milestone IDs, no codenames}
|
|
10
|
+
|
|
11
|
+
{One paragraph from the user's perspective. No workstream numbers, branch names, RULE references.}
|
|
12
|
+
|
|
13
|
+
## Upgrading
|
|
14
|
+
{Breaking changes only. ALWAYS first when present. Each break: explicit migration step + whether CLI+server must upgrade together.}
|
|
15
|
+
|
|
16
|
+
## What's new
|
|
17
|
+
{New capabilities — what a user/operator can now do.}
|
|
18
|
+
|
|
19
|
+
## API reference
|
|
20
|
+
{New/changed endpoints, shapes, error codes. Include JSON/route examples. Omit if no API change.}
|
|
21
|
+
|
|
22
|
+
## Bug fixes
|
|
23
|
+
{User-visible bugs fixed — observed behavior before/after. Omit if none.}
|
|
24
|
+
|
|
25
|
+
## CLI
|
|
26
|
+
{`agentsfleet` additions or shape changes. Omit if none.}
|
|
27
|
+
</Update>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Hard rules
|
|
31
|
+
|
|
32
|
+
- Label is `MMM DD, YYYY` exactly — no `vX.Y.Z —` prefix, no release name. Two releases on the same date → one merged `<Update>` block OR a disambiguator inside the title (`## Morning release — …`, `## Follow-up — …`); the label stays the date.
|
|
33
|
+
- Section order is fixed: Upgrading → What's new → API reference → Bug fixes → CLI. Omit empty sections; never leave empty headings.
|
|
34
|
+
- No milestone/workstream IDs, branch names, spec filenames, or `RULE XXX` references in the body.
|
|
35
|
+
- User-centric verbs ("we added", "X now does Y"), not implementation prose.
|
|
36
|
+
- Every breaking change appears under `Upgrading` with a migration step, even if also mentioned elsewhere.
|
|
37
|
+
- Body copy may reference a past entry by date (`"…that shipped on Apr 22, 2026"`); do not reference past releases by semver (`"shipped in v0.27.0"`) — that drags the two timelines back together.
|
|
38
|
+
|
|
39
|
+
## Version bumps (`VERSION`, not the changelog label)
|
|
40
|
+
|
|
41
|
+
- Feature milestone → minor (`0.7.0` → `0.8.0`).
|
|
42
|
+
- Bug fix → patch.
|
|
43
|
+
- Pre-v1.0 breaking → minor (semver 0.x carve-out); call out under Upgrading.
|
|
44
|
+
- Post-v1.0 breaking → major.
|
|
45
|
+
- Internal-only refactor: terse `<Update>` with `tags={["Internal", ...]}`, one-paragraph summary, skip section structure. Prefer folding into the next user-visible release.
|
|
46
|
+
- Parallel branches bumping `VERSION` do not coordinate through the changelog — whichever lands second rebases `VERSION` and re-runs `make sync-version`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentsfleet/orly",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "Repository-scoped engineering harness: renders agent rules, materialises the gates that enforce them, and proves the PR boundary — for any coding agent.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
package/registry.json
CHANGED
|
@@ -32,7 +32,6 @@ Before doing anything else in a polling cycle, read the triage helper:
|
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
GREPTILE_TRIAGE="$HOME/.local/share/gstack/review/greptile-triage.md"
|
|
35
|
-
[ -r "$GREPTILE_TRIAGE" ] || GREPTILE_TRIAGE="$HOME/Projects/dotfiles/.unified-skills/review/greptile-triage.md"
|
|
36
35
|
[ -r "$GREPTILE_TRIAGE" ] || { echo "BABYSIT: greptile-triage.md missing — abort cycle"; exit 1; }
|
|
37
36
|
```
|
|
38
37
|
|
|
@@ -312,15 +311,14 @@ BABYSIT REPORT — <PR|MR> #<n> @ <SHA>
|
|
|
312
311
|
## References
|
|
313
312
|
|
|
314
313
|
- `~/.local/share/gstack/review/greptile-triage.md` — fetch / classify /
|
|
315
|
-
reply / suppressions / history-write mechanics
|
|
316
|
-
`~/Projects/dotfiles/.unified-skills/review/greptile-triage.md`.
|
|
314
|
+
reply / suppressions / history-write mechanics (installed by gstack).
|
|
317
315
|
- `$HOME/.gstack/projects/<slug>/greptile-history.md` — per-project
|
|
318
316
|
history; drives Suppressions Check.
|
|
319
317
|
- `$HOME/.gstack/greptile-history.md` — global aggregate.
|
|
320
318
|
- `docs/greptile-learnings/RULES.md` — project-level named rules
|
|
321
319
|
(durable principles). New rule added here only when the finding
|
|
322
320
|
generalizes; per-incident rows go to greptile-history.md.
|
|
323
|
-
-
|
|
324
|
-
cites this skill.
|
|
321
|
+
- this repository's `AGENTS.md` / `AGENTS.orly.md` — CHORE(close) skill
|
|
322
|
+
chain step 4 cites this skill.
|
|
325
323
|
- `gh api` docs: https://cli.github.com/manual/gh_api
|
|
326
324
|
- `glab api` docs: https://gitlab.com/gitlab-org/cli (`glab api --help`)
|
|
@@ -7,7 +7,10 @@ import { install } from "./install";
|
|
|
7
7
|
import { RulesModel } from "./model";
|
|
8
8
|
|
|
9
9
|
const SOURCE_EXTENSIONS = ["rs", "ts", "tsx", "js", "jsx", "py", "sh", "sql", "zig", "mdx"];
|
|
10
|
-
|
|
10
|
+
// Read from package.json rather than restated here: a hand-synced copy goes
|
|
11
|
+
// stale at the next release and the test then proves an install at a version
|
|
12
|
+
// that no longer ships.
|
|
13
|
+
const ENGINE_VERSION = (await Bun.file(join(ROOT, "package.json")).json()).version;
|
|
11
14
|
|
|
12
15
|
afterEach(cleanupTemporaryDirectories);
|
|
13
16
|
|