Skip to content

feat(skill): consolidate canonical SKILL.md — ADR Pre-Check, OpenClaw metadata, root SKILL.md - #2

Draft
benw5483 wants to merge 2 commits into
mainfrom
adr-pre-check-section
Draft

feat(skill): consolidate canonical SKILL.md — ADR Pre-Check, OpenClaw metadata, root SKILL.md#2
benw5483 wants to merge 2 commits into
mainfrom
adr-pre-check-section

Conversation

@benw5483

@benw5483 benw5483 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidates the actual skill into a single canonical SKILL.md that serves Claude Code, Codex, skills.sh, and ClawHub. This PR started as the ADR Pre-Check fold-in and now carries the remaining consolidation pieces, so the superseded OpenClaw variant no longer holds anything this repository lacks.

Four changes, all additive against main:

  • ADR Pre-Check section in skills/actual/SKILL.md:56, unchanged from the version already reviewed on this branch.
  • Namespaced OpenClaw frontmatter at skills/actual/SKILL.md:14, the last thing the variant carried that this repository did not.
  • Root SKILL.md, a symlink to the canonical file, so a ClawHub publish can run from the repository root without restructuring.
  • README gains the ClawHub install path and records the variant repository as superseded.

Conflict resolution

The branch was opened 07-24 and main moved on 07-28, which left this PR CONFLICTING. Nothing semantic went wrong; it's purely positional. Both sides appended immediately after the "After install, verify" line, so both are kept: the flag-verification paragraph from main stays with the install context it belongs to, and ADR Pre-Check keeps its place ahead of ## Commands.

The ADR Pre-Check body is byte-identical to the reviewed version, including the --force --no-tui adaptation that Non-Interactive Environments requires.

Please read: argument-hint was deliberately not restored

The task for this PR asked for an argument-hint frontmatter key alongside the metadata block. I didn't add it, because doing so would break skill validation.

PR #3 removed that key hours before this work started, and skill-creator's quick_validate.py explains why: it enforces an allowlist of name, description, license, allowed-tools, and metadata. That's easy to get wrong from memory, so I confirmed it directly rather than inferring it:

$ quick_validate.py skills/actual          # as shipped in this PR
Skill is valid!                            # exit 0

$ quick_validate.py <same file + argument-hint>
Unexpected key(s) in SKILL.md frontmatter: argument-hint.
Allowed properties are: allowed-tools, description, license, metadata, name
                                           # exit 1

Since PR #3 gates on that validator and has an OpenAI plugin submission pending behind it, restoring the key would have failed validation and put the submission at risk. metadata is on the allowlist, so the OpenClaw block lands cleanly and the "one file, every surface" goal still holds. If the key is wanted for a surface I have not accounted for, it needs a different home than this frontmatter.

Why a symlink for the root file

A symlink keeps exactly one copy of the body on disk, so the two paths can't drift. That's the failure this consolidation exists to end. A pointer file was the alternative, and it loses either way: it publishes a stub with no skill content, or it repeats name and description at the root and reintroduces the drift in the frontmatter.

One thing worth knowing before publishing. ClawHub stores its own copy of the SKILL.md body and doesn't carry references/, so the relative reference links behave from the root exactly as they already do for the published variant. Nothing here changes that, and no clawhub command was run.

Test plan

This repository has no CI, so everything below was checked by hand and is reproducible from the branch.

  • PR is MERGEABLE / CLEAN again, still a draft, still one PR.
  • quick_validate.py skills/actual passes, and quick_validate.py . passes through the root symlink.
  • Frontmatter parses as YAML with keys description, metadata, name; both name and description are non-empty.
  • metadata.openclaw carries requires.bins: [actual], primaryEnv, and homepage; the canonical description is untouched.
  • ADR Pre-Check survives the merge byte-identical, nested fenced blocks included, and still sits before ## Commands.
  • Root SKILL.md resolves to the same bytes as skills/actual/SKILL.md, verified with cmp; git records it as mode 120000.
  • No conflict markers remain, and all three plugin manifests still parse as JSON.
  • git diff origin/main --stat reports 3 files and 41 insertions with no deletions, so nothing from main was reverted.

Generated by the operator's software factory.
• City: factory-main · Agent: local-core.builder-2
• On behalf of: @benw5483

benw5483 and others added 2 commits July 24, 2026 17:47
Fold the ADR Pre-Check guidance from the OpenClaw variant of this skill
(actual-software/actual-skill-openclaw) into the canonical skill, so the
two variants carry the same content. The section tells an agent to check
for existing ADR context before creating a new skill, component, or
feature, so new work lines up with decisions the project already made.

Three things changed relative to the source section: the heading drops
its variant-specific label, the prose is unwrapped to match this file's
style, and both `actual adr-bot` invocations carry `--force --no-tui` as
the Non-Interactive Environments section requires.

Generated by the operator's software factory.
City: factory-main · Agent: local-core.builder-1
On behalf of: @benw5483
Co-Authored-By: operator-factory-bot <factory-bot@actual.invalid>
…ILL.md, ClawHub install docs

Resolves the conflict that left this PR unmergeable and adds the remaining
consolidation pieces so one SKILL.md serves Claude Code, Codex, skills.sh, and
ClawHub.

Conflict resolution is positional only. Both sides appended after the
"After install, verify" line, so both are kept: main's flag-verification
paragraph stays with the install context, and the ADR Pre-Check section keeps
its place ahead of "## Commands". The ADR Pre-Check body is byte-identical to
the version already reviewed on this branch, including its --force --no-tui
adaptation for non-interactive use.

Adds the namespaced metadata.openclaw block (requires.bins, primaryEnv,
homepage), the last thing the superseded openclaw variant carried that the
canonical repo lacked. The canonical description is unchanged.

Deliberately does NOT restore the argument-hint key. The universal-plugin work
removed it, and skill-creator's quick_validate.py allows only name, description,
license, allowed-tools, and metadata, so re-adding it fails validation.

Adds a root SKILL.md symlink to skills/actual/SKILL.md so a publish can run from
the repository root without restructuring, with no second copy to drift.

README documents the ClawHub install path and records that the openclaw variant
repository is superseded by this one.

Generated by the operator's software factory.
City: factory-main - Agent: local-core.builder-2
On behalf of: @benw5483
Co-Authored-By: <operator-factory-bot> <factory-bot@actual.ai.invalid>
@benw5483 benw5483 changed the title feat(skill): add ADR Pre-Check section feat(skill): consolidate canonical SKILL.md — ADR Pre-Check, OpenClaw metadata, root SKILL.md Jul 28, 2026
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