114 Commits
Author SHA1 Message Date
ryan4yin | 二花 96fc0e3502 docs(agents): propose broader fixes and log session failures (#523)
Assisted-by: DeepSeek Harness (claude-opus-5-5)
2026-11-10 10:04:28 +08:00
Ryan Yin d7c493f5cd chore(agents): drop the dsh-nu plugin
dsh-nu replaced every shell command with Nushell and refused bash/pwsh
syntax before it spawned; in practice the refusals were too noisy. Drop
the flake input, install plain dsh, and remove the docs describing the
Nushell-only shell.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-11-05 11:46:03 +08:00
Ryan Yin 4470b3d014 docs: centralize documentation under docs/
Move standalone repository docs from the root into docs/ and add a documentation index that links the moved docs and the code-local runbooks.

Update Markdown links, source comments, and the root entry points to the new locations. Keep README.md and AGENTS.md at the root as required entry points.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-11-02 17:48:57 +08:00
Ryan Yin 0376697cef docs(agents): record why rules omit principle names 2026-10-30 18:59:09 +08:00
Ryan Yin 4fcdb79719 docs(agents): answer challenges before continuing work
A user question or challenge is the current task; resolve it before doing unrelated work.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-10-29 21:40:46 +08:00
Ryan Yin ba1515f094 docs(agents): ask for SSH access instead of falling back
A missing GitHub SSH key is a credential boundary, not a reason to switch transports silently.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-10-29 21:39:16 +08:00
Ryan Yin 13afe01441 docs(agents): prefer upstream fixes over local workarounds
Clarify that minimality means the smallest best-practice change, not a local patch around an upstream defect.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-10-29 21:37:41 +08:00
Ryan Yin 8a6cc86664 docs(agents): stop on credential failure
Assisted-by: DeepSeek Harness (deepseek-flash)
2026-10-29 15:55:30 +08:00
ryan4yin | 二花 475fcc55f3 chore(agents): use dsh-nu from NUR (#475) 2026-10-18 21:41:14 +08:00
ryan4yin | 二花 373b233f32 feat(agents): steerable turns, PTC, and a Nushell-only dsh (#473)
* feat(agents): use the shell's own dialect; allow 5 s retry backoff

Assisted-by: DeepSeek Harness (deepseek-flash)

* feat(dsh): make Nushell the only shell

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(agents): wait for CI in the background

Pushes to a PR often start multi-minute CI runs, and an agent that holds
the turn open on a foreground watch reports nothing until it ends. Require
the pushed head and running checks to be reported first, the watch to run
in the background, and the result to be collected after independent work
or after ending the turn.

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(agents): keep the shell-handoff rule platform-neutral

The global rules carry no Windows assumptions: drop the cmd, pwsh, and
wsl handoff examples and keep the POSIX forms plus the dsh refusal.

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(dsh): keep the shell-swap docs POSIX-only

This repository manages Linux and Darwin hosts, not Windows: drop the
Windows handoff examples and terminal-backend wording from dsh.md. The home
patch also disabled pwsh-sandbox redundantly because dsh-base already
disables that row on POSIX; keep only the active bash-sandbox disable and
verify the composed rows with --dump-config.

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(agents): keep the global rules runtime-neutral

Global rules are loaded by every agent CLI, so they must not describe one
runtime's behavior. Drop the dsh-specific sentence and wording while keeping
the expectation to prefer Nushell structured pipelines and Python. Runtime
behavior stays documented in home/base/tui/agents/dsh.md.

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(agents): default shell work to Nushell

Keep the Nushell preference explicit in the runtime-neutral global rules, and
keep runtime behavior in runtime docs. Bash stays a narrow fallback for tasks
Nushell cannot do.

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(agents): tighten global-rule scope and CI guidance

Keep global rules runtime- and project-neutral, and state that boundary in the
file. Remove the duplicated CI turn-steering text in favour of the Communication
rule, resolve the watch run before watching instead of relying on
gh pr checks --watch alone, name the working-directory parameter generically,
and distinguish a bounded retry backoff from a fixed completion wait.

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(agents): never estimate a CI run's duration

A CI run has no predictable length, so do not turn "it looks short" into a
reason to wait. The rule is unconditional: report the head and started checks,
start a background watch, and end the turn; collect the result on completion.
The eval scenario now uses an unknown duration.

Assisted-by: DeepSeek Harness (deepseek-flash)

* docs(agents): move maintenance guidance to the README

The runtime/project boundary is guidance for editing the rules, not a rule
agents need loaded every session. The README's Maintaining global rules
section already owns that audience; the loaded rules keep only behavior.

Assisted-by: DeepSeek Harness (deepseek-flash)

* refactor(dsh): render the home patch from a YAML template

Move the home-layer cordis patch into dsh-cordis.patch.yml, substitute the
bundle and Nushell store paths with replaceVars, and link the rendered file
through home.file.source. This module is the only writer of
~/.dsh/cordis.patch.yml, the current host has no such file, and the profile
patch is a separate layer.

Assisted-by: DeepSeek Harness (deepseek-flash)

* refactor(dsh): install the shell plugin through NUR withPlugins

Replace the local runCommand bundle, peer symlink, and home-layer YAML file
with the plugin package and dsh.withPlugins from ryan4yin/nur-packages#43. The
package wrapper adds a generated --patch overlay after the profile layer, so
dsh no longer writes or manages ~/.dsh/cordis.patch.yml. The NUR input is
temporarily pinned to the PR branch and its commit; point it back at main once
the NUR PR merges.

Assisted-by: DeepSeek Harness (deepseek-flash)

* refactor(nix): expose the NUR package set as nurPkgs

Pass one per-system NUR package set through specialArgs instead of repeating
nur-ryan4yin.packages.${pkgs.stdenv.hostPlatform.system} at each call site.
The agents, rime, and idols-ruby modules now use the short binding.

Assisted-by: DeepSeek Harness (deepseek-flash)

* refactor(nix): use nurPkgs in package overlays

The overlays receive specialArgs too, so they can use the per-system NUR
package set instead of rebuilding the long input path from prev. This leaves
only the definition in outputs/default.nix.

Assisted-by: DeepSeek Harness (deepseek-flash)

* refactor(nix): name the per-system NUR set myNurPkgs

Leave room for consuming another NUR repository later, and match the existing
mylib/myvars naming.

Assisted-by: DeepSeek Harness (deepseek-flash)

* chore(dsh): consume the merged NUR package set

nur-ryan4yin now points at main after ryan4yin/nur-packages#43 was squash
merged; the lock records the merge commit. No branch ref remains.

Assisted-by: DeepSeek Harness (deepseek-flash)

* fix(dsh): pass the web profile explicitly

The withPlugins launcher prepends --patch, which historically prevented dsh
from auto-expanding "dsh web" into "--profile web". Pass the profile
explicitly in the Just recipe and the verification commands so they work with
both plain dsh and the wrapper.

Assisted-by: DeepSeek Harness (deepseek-flash)

* chore(dsh): pick up the wrapped-profile fix

Update nur-ryan4yin to the squash merge that keeps an implicit profile name
first, so "dsh web" and "just dsh-web" work through the wrapper again.

Assisted-by: DeepSeek Harness (deepseek-flash)

* chore(dsh): pick up the plugin peer-link fix

Update nur-ryan4yin to the squash merge that links the dsh peer tree at
node_modules/@deepseek-ai instead of nesting it one level deeper. This is the
import failure that stopped nushell-executor from activating after deploy.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-10-18 12:28:18 +08:00
Ryan Yin a9920c47fb docs(agents): create forks with only the default branch 2026-10-17 14:05:33 +08:00
ryan4yin | 二花 9c38819517 docs: review and correct comments and documentation (#436) 2026-10-12 10:02:38 +08:00
ryan4yin | 二花 f32d67a5cc feat(agents): add review-comments-and-docs and two evaluation suites (#434)
Adds the review-comments-and-docs skill (1282-word body) and two evaluation suites: a 21-case
measured suite for the skill, and a harness that runs the two concurrency scenarios previously left
unrun in agents/evals/global-rules.md.
2026-10-12 00:35:06 +08:00
ryan4yin | 二花 497fabbf92 test(agents): tighten language rule eval (#430)
Assisted-by: DeepSeek Harness (gpt-6-luna)
2026-10-11 08:32:50 +08:00
Ryan Yin 648e375b88 test(agents): add git-delivery fixtures and an A/B run
Assisted-by: DeepSeek Harness (claude-opus-5-5, deepseek-flash, gpt-6.1-sol, gpt-6-luna)
2026-10-10 19:49:45 +08:00
Ryan Yin 7bba1abbc9 feat(agents): cap delivery text and shorten git-delivery
Assisted-by: DeepSeek Harness (claude-opus-5-5, deepseek-flash, qwen3.8-flash-next iq3, gpt-6.1-sol, gpt-6-luna)
2026-10-10 19:49:44 +08:00
Ryan Yin a100790ff2 feat(agents): require self-explaining artifacts and readable brevity
Assisted-by: DeepSeek Harness (qwen3.8-flash-next iq3, gpt-6.1-sol, gpt-6-luna)
2026-10-10 19:49:44 +08:00
Ryan Yin 0e70582642 docs(agents): convert prose tables to grouped lists
Assisted-by: DeepSeek Harness (claude-opus-5-5, qwen3.8-flash-next iq3)
2026-10-10 19:49:44 +08:00
Ryan Yin d808dd914d docs(agents): correct rule boundaries and eval scenarios
Assisted-by: DeepSeek Harness (claude-opus-5-5, deepseek-flash, qwen3.8-flash-next iq3)
2026-10-10 19:49:44 +08:00
Ryan Yin 7b21ea5adb feat(agents): rewrite find-docs onto the nixpkgs ctx7 CLI
Assisted-by: DeepSeek Harness (claude-opus-5-5, deepseek-flash, qwen3.8-flash-next iq3)
2026-10-10 19:49:44 +08:00
ryan4yin | 二花 e2548cd2aa docs(agents): close rule gaps found by evals and record the method (#428)
* docs(agents): state the boundaries the rules only implied
* docs(agents): grow the scenario tables and record the method
* docs(agents): record the evaluation rounds and their size cost
* docs(agents): require disclosure of AI-assisted contributions
* docs(agents): correct safety boundaries and eval records

Assisted-by: DeepSeek Harness (qwen3.8-flash-next iq3, gpt-6-luna & gpt-6.1-sol)
2026-10-10 15:59:57 +08:00
ryan4yin | 二花 9d69832ff7 refactor(agents): pin global skills and trim always-loaded context (#427)
* feat(agents): pin global skills as flake inputs
* refactor(agents): trim always-loaded agent context
2026-10-10 12:16:56 +08:00
ryan4yin | 二花 0d7c4d7cc1 feat(agents): extract global Git delivery skill #426 2026-10-10 11:18:39 +08:00
Ryan Yin 3b63028a05 fix: repair skill frontmatter and cap commit message length 2026-10-10 09:02:08 +08:00
Ryan Yin 2d07dc8da5 docs(agents): close rule gaps behind repeated corrections
Clause-level extensions only, no new sections. Publishing gains modals in both directions: the old sentence read as forbidding pushes to the user's own private repositories while leaving the disclosure direction a preference. The diagnosis scenario moves to Smoke because a cross-cutting rule has no area for the Extended trigger to select, and the guide separates cheap checks from behavioral runs so a modal-only edit does not cost a scenario suite.
2026-10-10 08:42:38 +08:00
Ryan Yin 7b1b8f6382 docs(agents): require per-push confirmation for default branches 2026-10-09 23:40:56 +08:00
Ryan Yin 2d2f2ca7c6 docs(agents): make concision and pre-publish scan rules enforceable 2026-10-09 23:31:48 +08:00
ryan4yin | 二花 0e12440148 refactor(secrets): move nushell-secrets.nu out of agenix (#423) 2026-10-09 22:40:50 +08:00
Ryan Yin 4c165ad7da docs(agents): prefer E2E verification of real workflows 2026-10-09 15:58:36 +08:00
Ryan Yin dd46fb3fb2 docs(agents): clarify credential boundaries and rule maintenance 2026-10-08 23:45:47 +08:00
ryan4yin | 二花 5f6a1dadf4 docs: fix stale claims and AI-flavored prose (#397) 2026-10-07 14:48:36 +08:00
Ryan Yin 97237f352d docs(agents): use the Nix-managed GitHub SSH config
Restore the rule dropped in 9822dafa: keep GitHub Git remotes on SSH, make sure the Nix-managed ~/.ssh/config is used, and rerun outside the sandbox when it is rejected.
2026-10-04 14:32:32 +08:00
ryan4yin | 二花 2ee0b9c7eb chore(tui): remove standalone herdr, superseded by tuios (#374) 2026-10-04 11:23:16 +08:00
ryan4yin | 二花 3a5b9ec4c6 docs: README audit fixes and de-duplication (#371) 2026-10-03 18:28:58 +08:00
ryan4yin | 二花 6a1b4c699a chore(docs): prune stale TODOs (#370) 2026-10-03 17:50:28 +08:00
ryan4yin | 二花 afdaa3b869 refactor(agents): manage agent config in a home-manager module (#367) 2026-10-03 16:57:38 +08:00
Ryan Yin a4206c17a9 docs(agents): note nushell is the interactive shell 2026-10-02 11:39:36 +08:00
Ryan Yin 1d43fd2802 docs(agents): label the post-merge cleanup rule 2026-10-02 11:24:18 +08:00
Ryan Yin 044862110e docs(agents): clean up after a merged PR 2026-10-02 11:21:19 +08:00
ryan4yin | 二花 2b0f01d99c chore(agents): workspace layout, related repositories, and ~/src checkouts (#340)
* docs(skills): point nix-config-secrets at the private repo under ~/codes

Record where the private nix-secrets checkout lives and that agents should
do the mechanical secret work themselves, handing back only the
interactive/sudo agenix operations and pushes.

* docs(agents): add related repositories to nix-config

* chore(agents): adopt ~/src for source checkouts

Move third-party/source checkouts from ~/codes/src to ~/src so the home
layout reads as three siblings: ~/codes (personal), ~/work (work),
~/src (checkouts). Preserve and back up the new path, and update the
global rule and the two nixpkgs skill references.

* docs(agents): tighten the code layout rule

* docs(agents): fold the work-confidentiality note into the layout line

* docs(agents): base the confidentiality rule on repo visibility

* docs(agents): drop the stale KubeVirt mention
2026-10-02 11:16:24 +08:00
ryan4yin | 二花 68ea04f173 fix(docs): correct stale and mismatched documentation (#338) 2026-10-02 10:21:55 +08:00
ryan4yin | 二花 b2ec56db66 docs(skills): add repo-scoped task skills and give each fact one home (#337) 2026-10-02 10:13:03 +08:00
Ryan Yin 872901007e docs(agents): use terraform plan, drop nonexistent helm diff 2026-10-01 11:34:34 +08:00
Ryan Yin 9885283edf docs(agents): clarify local language selection and prefer Bun 2026-10-01 10:23:35 +08:00
Ryan Yin 7f6759219b docs(agents): align evals with external instruction boundaries 2026-09-30 21:17:19 +08:00
Ryan Yin 91cc9c0cf4 docs(agents): fix authorization and skill trust wording
Allow clearly-implied task authorization, trust skills listed in the runtime's configured catalog, and restore the ban on following external-material instructions. Sync the affected evaluation scenarios.
2026-09-30 21:09:34 +08:00
ryan4yin | 二花 111929023d docs(agents): clarify tool selection and authorization boundaries (#331) 2026-09-30 20:51:42 +08:00
Ryan Yin bae98ed1c8 docs(agents): allow TypeScript for complex shell commands 2026-09-30 18:38:08 +08:00
Ryan Yin b38d8b802e docs(agents): make apply a distinct step in impactful changes 2026-09-28 10:18:52 +08:00
Ryan Yin 695d58de8b docs(agents): mention quoted heredoc for multi-line code 2026-09-26 22:53:13 +08:00