Skip to content

feat(skill): add @tsops/skill — Claude Skill for tsops#62

Open
Pom4H wants to merge 2 commits into
mainfrom
claude/fix-ci-review-comments-E9TxE
Open

feat(skill): add @tsops/skill — Claude Skill for tsops#62
Pom4H wants to merge 2 commits into
mainfrom
claude/fix-ci-review-comments-E9TxE

Conversation

@Pom4H
Copy link
Copy Markdown
Owner

@Pom4H Pom4H commented May 4, 2026

Ships the canonical Skill content at skills/tsops/ and a thin npm
package (@tsops/skill) that installs it into ~/.claude/skills/tsops or
./.claude/skills/tsops. After install, Claude Code, the Agent SDK, and
any other tool implementing the Agent Skills standard load the Skill
automatically when relevant.

Why a Skill, not just docs: the docs explain what tsops is. The Skill
tells an agent how to operate it without violating the load-bearing
rules — no internal URLs in env vars, always run tsops plan before
deploy, always tsc --noEmit after a rename, never --no-verify past
secret validation. Without the Skill, an LLM agent reaches for
BACKEND_URL=http://api:3000 because that pattern is everywhere else
on the public internet. With it, it reaches for config.url('api', 'service').

Distribution model (mirrors workflows-sdk.dev structure):

  • canonical source on GitHub at skills/tsops/
  • npm package @tsops/skill that installs the Skill via npx @tsops/skill install
  • docs page at docs/guide/skill.md

Skill structure:
skills/tsops/
├── SKILL.md entry point — frontmatter + hard rules
├── reference/
│ ├── commands.md CLI flags
│ ├── runtime-helpers.md config.url / config.env / config.dns
│ ├── secrets.md secret validation, cluster fallback
│ └── preview-overlays.md overlay namespace lifecycle
└── examples/
├── add-app.md recipe
├── rename-app.md recipe — compiler-driven rename
└── add-secret.md recipe

Package structure (packages/skill/):

  • bin/install.mjs — tsops-skill install [--user|--project] [--force],
    plus uninstall and where subcommands
  • scripts/sync-skill.mjs — build step that copies skills/tsops/ into
    packages/skill/skill/ for the npm tarball
    (npm doesn't preserve symlinks reliably)
  • README.md — install + verify + uninstall instructions

This PR is strictly additive — no existing files are modified, so no
conflict with the in-flight docs refresh in PR #51.

Follow-ups (separate small PRs after both merge):

  • surface /guide/skill in the docs sidebar
  • add a "Use with Claude" link from the main README
  • submit to anthropics/skills community registry if/when accepted

claude added 2 commits May 4, 2026 20:29
Ships the canonical Skill content at skills/tsops/ and a thin npm
package (@tsops/skill) that installs it into ~/.claude/skills/tsops or
./.claude/skills/tsops. After install, Claude Code, the Agent SDK, and
any other tool implementing the Agent Skills standard load the Skill
automatically when relevant.

Why a Skill, not just docs: the docs explain what tsops is. The Skill
tells an agent how to operate it without violating the load-bearing
rules — no internal URLs in env vars, always run `tsops plan` before
deploy, always `tsc --noEmit` after a rename, never `--no-verify` past
secret validation. Without the Skill, an LLM agent reaches for
BACKEND_URL=http://api:3000 because that pattern is everywhere else
on the public internet. With it, it reaches for config.url('api', 'service').

Distribution model (mirrors workflows-sdk.dev structure):
- canonical source on GitHub at skills/tsops/
- npm package @tsops/skill that installs the Skill via `npx @tsops/skill install`
- docs page at docs/guide/skill.md

Skill structure:
  skills/tsops/
  ├── SKILL.md                       entry point — frontmatter + hard rules
  ├── reference/
  │   ├── commands.md                CLI flags
  │   ├── runtime-helpers.md         config.url / config.env / config.dns
  │   ├── secrets.md                 secret validation, cluster fallback
  │   └── preview-overlays.md        overlay namespace lifecycle
  └── examples/
      ├── add-app.md                 recipe
      ├── rename-app.md              recipe — compiler-driven rename
      └── add-secret.md              recipe

Package structure (packages/skill/):
- bin/install.mjs — `tsops-skill install [--user|--project] [--force]`,
                    plus uninstall and where subcommands
- scripts/sync-skill.mjs — build step that copies skills/tsops/ into
                          packages/skill/skill/ for the npm tarball
                          (npm doesn't preserve symlinks reliably)
- README.md — install + verify + uninstall instructions

This PR is strictly additive — no existing files are modified, so no
conflict with the in-flight docs refresh in PR #51.

Follow-ups (separate small PRs after both merge):
- surface /guide/skill in the docs sidebar
- add a "Use with Claude" link from the main README
- submit to anthropics/skills community registry if/when accepted
CI failed on packages/skill because biome's organize-imports moved imports
above the file-level docstring, and one-liner try/catch and if blocks
exceeded the formatter's preferred line layout. Replace the JSDoc block
with line comments so imports come first, then split the one-liners.

Also pick up the @tsops/skill workspace entry that was missing from the
lockfile, which would have made `pnpm install --frozen-lockfile` drift
once the package landed.
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.

2 participants