Skip to content

feat(cli): add skilld run for transient Skills - #123

Merged
harlan-zw merged 14 commits into
mainfrom
feat/transient-skill-run
Aug 26, 2026
Merged

feat(cli): add skilld run for transient Skills#123
harlan-zw merged 14 commits into
mainfrom
feat/transient-skill-run

Conversation

@harlan-zw

@harlan-zw harlan-zw commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

❓ Type of change

  • ✨ New feature

📚 Description

skilld run <SOURCE> prints a Skill for one-off use. It does not install the Skill.

A remote run retains no Skill files. It creates no lockfile entry, Agent target, project file, or Skill cache.

The initial load returns the exact Git revision it reviewed. Every generated file-read command uses that revision. A moving branch cannot mix instructions from one commit with files from another.

Remote file reads without that revision fail before fetching content. The bundled skilld Skill runs from embedded bytes without temporary staging.

Search now leads with skilld run. The supporting-file inventory lists each path, kind, and size. It prints no supporting file content until the Agent requests a named file.

The output contract now includes:

  • safe, copyable commands in human output
  • typed argument arrays in JSON output
  • origin, revision, and source status on loads and file reads
  • no content-derived summaries
  • no terminal control or bidi formatting characters in human or plain Skill content
  • exact reviewed revisions in later install guidance
  • POSIX commands on Unix and PowerShell commands on Windows

Local runs reuse install source checks. They reject invalid names, links, unsafe terminal characters, and non-UTF-8 paths. They enforce depth, file-count, and total-size limits. These checks fail before skilld returns partial output.

Executable and binary files remain withheld. The output asks for user approval before an install writes them to disk.

One performance improvement remains separate. Direct GitHub runs still fetch every blob while they build the manifest. Selective remote delivery needs a focused provider change.

🤖 AI disclosure: Harlan Agent Kit modified this description. My AI open-source policy.

@harlan-github-agent

harlan-github-agent Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 READY · 88/100

Harlan Agent Kit posted this automated review. It is not Harlan's personal review or approval. AI open source policy. Human merge decision still required.

▓▓▓▓▓ 100%

A remote run wrote every file, executable bits included, to a run cache
before printing a byte of SKILL.md. Nothing pruned it and nothing rechecked
it, so a directory sitting at the digest path was served as verified.

A remote run now writes nothing. SKILL.md renders from memory, supporting
files are named but never printed, and an Agent reads one with --file. A
file skilld will not hand over as text is a file that needs an install.
Pin follow-up reads and installs to the reviewed commit. Keep command output safe for terminals and shell reuse. Reuse source limits and the shared JSON contract so local and remote runs fail consistently.
Search now leads one-off use through transient runs. Keep the generated command intact on narrow terminals so its quoted arguments remain safe to copy.
@harlan-zw

harlan-zw commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 READY · 95/100

Harlan Agent Kit posted this automated review. AI open source policy. It is not Harlan's personal review or approval. Last updated: 2026-08-26 10:49 UTC. Human merge decision still required.

▓▓▓▓▓ 100%

  • Fixed: exact revision, path, and provider identity.
  • Fixed: safe POSIX and PowerShell commands.
  • Fixed: terminal-safe Skill, service, and parse output.
  • Fixed: parsed lock sources and safe GitHub links.
  • Fixed: run-first help, progress, onboarding, and migration.
  • Deferred: direct mode still fetches every blob.

@harlan-zw
harlan-zw merged commit f540c0f into main Aug 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant