allod skill: scannable two-column list from a summary field #264

Merged
vnprc merged 3 commits from agent/skill-format-a into master 2026-10-01 01:32:30 +01:00
Member

The allod skill list is now the format the owner approved (mockup iterated in session): one aligned line per skill — name padded to the longest listed name, two spaces, then a one-line summary — instead of a full frontmatter description truncated at 100 characters.

What changes for a running machine:

  • New summary: frontmatter field, at most 70 characters: the line humans see. description: keeps its role untouched — the agent's trigger text, read in full via allod skill <name>.
  • A skill without a summary lists its description truncated to the summary limit at a word boundary, so the format lands before any description is rewritten.
  • Enforced limits: a frontmatter name over 16 characters or a summary over 70 refuses the listing, naming the SKILL.md path and the limit. The owner set both so one long field cannot dominate the column again.
  • parseSkillFile now reads keys only from the frontmatter block: previously a body line beginning name: or summary: could supply a frontmatter value when the real key was absent.
  • allod skill <name> (whole-file print), --from, and dedup across sources are unchanged.

If it is wrong: a false refusal names the path and the limit, so the fix is editing the field; rendering is visible by running the command. A straight revert removes all of it.

Closes allod/tools#263. Refs allod/memory#78 — the summaries themselves, the delegate-impl rename, and the memory-repo prose land there; land that second, after tools.

Risk

R1. Refusal-only enforcement plus rendering; no state mutated, no secrets, no cross-repo ordering on this side. Worst credible case is a false-positive refusal that names its path, recoverable by editing one field. Rollback is a straight revert.

Validation

  • go test ./... green in all four build-tag combinations; gofmt -l and go vet clean.
  • Tests cover: the aligned two-column output and name-column width; summary printed verbatim when present; description truncation fallback; name-over-limit and summary-over-limit refusals naming the file; global sort across multiple --from sources; a body line that mimics frontmatter supplying nothing.
  • Run against the real allod/memory skills directory: refuses while delegate-implementation (23 chars) exceeds the name limit — the live receipt for the rename in allod/memory#78; on the renamed worktree it lists all six skills, every line within the column.
The `allod skill` list is now the format the owner approved (mockup iterated in session): one aligned line per skill — name padded to the longest listed name, two spaces, then a one-line summary — instead of a full frontmatter description truncated at 100 characters. **What changes for a running machine:** - New `summary:` frontmatter field, at most 70 characters: the line humans see. `description:` keeps its role untouched — the agent's trigger text, read in full via `allod skill <name>`. - A skill without a summary lists its `description` truncated to the summary limit at a word boundary, so the format lands before any description is rewritten. - Enforced limits: a frontmatter `name` over 16 characters or a `summary` over 70 refuses the listing, naming the SKILL.md path and the limit. The owner set both so one long field cannot dominate the column again. - `parseSkillFile` now reads keys only from the frontmatter block: previously a body line beginning `name:` or `summary:` could supply a frontmatter value when the real key was absent. - `allod skill <name>` (whole-file print), `--from`, and dedup across sources are unchanged. **If it is wrong:** a false refusal names the path and the limit, so the fix is editing the field; rendering is visible by running the command. A straight revert removes all of it. Closes allod/tools#263. Refs allod/memory#78 — the summaries themselves, the `delegate-impl` rename, and the memory-repo prose land there; land that second, after tools. ## Risk R1. Refusal-only enforcement plus rendering; no state mutated, no secrets, no cross-repo ordering on this side. Worst credible case is a false-positive refusal that names its path, recoverable by editing one field. Rollback is a straight revert. ## Validation - `go test ./...` green in all four build-tag combinations; `gofmt -l` and `go vet` clean. - Tests cover: the aligned two-column output and name-column width; `summary` printed verbatim when present; description truncation fallback; name-over-limit and summary-over-limit refusals naming the file; global sort across multiple `--from` sources; a body line that mimics frontmatter supplying nothing. - Run against the real `allod/memory` skills directory: refuses while `delegate-implementation` (23 chars) exceeds the name limit — the live receipt for the rename in allod/memory#78; on the renamed worktree it lists all six skills, every line within the column.
vnprc force-pushed agent/skill-format-a from f7162b4497 to 392d99a678 2026-10-01 01:31:48 +01:00 Compare
vnprc approved these changes 2026-10-01 01:32:23 +01:00
vnprc merged commit 392d99a678 into master 2026-10-01 01:32:30 +01:00
vnprc deleted branch agent/skill-format-a 2026-10-01 01:32:30 +01:00
Sign in to join this conversation.
No description provided.