You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4848889
Browse filesBrowse the repository at this point in the historyBrowse files
fix(install): the Kiro agent files are copies -- kiro-cli's rewrite stays out of the repo
kiro-cli rewrites an agent file it loads: the legacy `hooks` object becomes
the array form (`name`/`trigger`/`action`/`timeout`) and the `toolsSettings`
denylist regexes become `permissions.rules` globs. The installer placed
`~/.kiro/agents/{study-mentor,studyloop,study-plan-architect}.json` as links
into the repository, so on 2026-10-12 that rewrite landed in
agents/kiro/studyloop.json and study-plan-architect.json -- both at 15:09:30,
seven manifest/agent-contract tests red, and the migrated denylist carrying a
bare `*` (every shell command denied) where `curl .* \| bash`, `curl .* \| sh`
and `wget .* \| bash` had been. Nobody edited those files; the doctor already
documents the migration (doctor/harness.py, _kiro_stop_commands).
LinkSpec gains `copy`; the three agent FILES set it, the directories beside
them (shared/, study-mentor/, study-plan-architect/, skills) stay links so
their file:// resources resolve exactly as before. _copy_path owns the copy
by agent NAME: a target whose `name` matches the source is StudyLoop's
whatever kiro-cli has since written into it, and is refreshed in place with
no .bak (the migration is the reason the file is a copy at all); a legacy
link is replaced; a foreign file at our path is moved to .bak on install and
left alone on uninstall; an identical copy is a no-op.
Red first: nine new tests in test_kiro_studyloop_agent.py (every agent file a
copy; a kiro-cli-shaped rewrite of the copy leaves agents/kiro/ byte-identical;
reinstall refreshes a rewritten copy and is a no-op on an identical one;
legacy link replaced; foreign file backed up; uninstall removes ours after a
rewrite, leaves a foreign file) all failed against the link installer, and
the architect contract test now pins the copy; 63/63 green with the change.
Blast radius: 67 unit files touching installers, doctor, adapters and the CLI
install path -- 1850 passed, the one failure the known sandbox-only tmux shim
test (identical at HEAD). mkdocs --strict clean.
The adapter's own swap (adapters/kiro.py) is unaffected: it reads its template
from the repository, backs up whatever sits at the target and restores only
over its own swap; a copy there is simply a regular file it never mistakes
for the swap. Existing installs keep their links until
`studyloop install agents --tool kiro` is re-run, which replaces them.
Copy file name to clipboardExpand all lines: docs/agent-install.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ Then check the result:
48
48
studyloop doctor --category agents
49
49
```
50
50
51
-
The installer links StudyLoop-managed definitions while preserving an existing file as a `.bak` backup when necessary. Use `studyloop install agents --uninstall` to remove links created by StudyLoop.
51
+
The installer links StudyLoop-managed definitions (copying the three Kiro agent files, see below) while preserving an existing file as a `.bak` backup when necessary. Use `studyloop install agents --uninstall` to remove what StudyLoop installed.
52
52
53
53
## Start a study session
54
54
@@ -87,6 +87,15 @@ StudyLoop's `studyloop` and `session-db` MCP servers, and pre-approves no
87
87
tools, the same grants ACP sessions had before it existed. You never start it
88
88
yourself; `studyloop doctor` checks that kiro-cli validates and lists it.
89
89
90
+
The three Kiro agent files (`study-mentor.json`, `studyloop.json`,
91
+
`study-plan-architect.json`) are installed as **copies** under `~/.kiro/agents/`,
92
+
not links: kiro-cli rewrites an agent file it loads (its hook and permission
93
+
schema migrate in place), and a link would carry that rewrite back into
94
+
StudyLoop's own sources. If kiro-cli has migrated your copy, that is expected;
95
+
`studyloop install agents --tool kiro` refreshes it from the shipped definition.
96
+
The directories beside them (`shared/`, `study-mentor/`, `study-plan-architect/`,
97
+
the skills) remain links, so their `file://` resources resolve exactly as before.
98
+
90
99
Kiro also receives the opt-in `studyloop-xtiles-wind-down` skill at `~/.kiro/skills/`, as a symlink to the shared copy described below. It stays silent unless your second-brain provider is `xtiles` and an `xtiles` MCP server is connected.
0 commit comments