Skip to content

About

No description, website, or topics provided.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Latest commit

 

History

59 Commits

Folders and files

Repository files navigation

TSH Agentic Collections

A Claude Code plugin marketplace for The Software House, carrying custom agents and skills you can install into any project. It publishes three families:

  • Core (tsh-core) — the ground under both. One small plugin of tool mechanics that depend on neither your role nor the repo. Install it; it's for everyone.
  • Disciplines (tsh-product-engineering and friends) — how we work. One per discipline. Install the one that matches your job.
  • Stacks (tsh-stack-frontend and friends) — what we work with. One per technology stack. Install the ones a given project is built on.

Heads up: one discipline plugin, tsh-product-design, is still an empty scaffold. Installing it works and is worth doing now — you'll pick up agents and skills automatically as we land them — but it contributes no components yet, so an empty component list after installing it is expected, not a broken install. Every other plugin ships real skills today.

Requires Claude Code v2.1 or newer:

claude --version

If you need to update: npm install -g @anthropic-ai/claude-code@latest, or brew upgrade claude-code if you installed it with Homebrew.

Step 1 — add the marketplace

Run this inside any Claude Code session. It registers the catalog so you can browse it; nothing is installed yet.

/plugin marketplace add TheSoftwareHouse/agentic-collections

This repo is private, so your git needs to be able to clone it — a working SSH key or gh auth login already set up. Alternatives if the owner/repo shorthand fails:

/plugin marketplace add git@github.com:TheSoftwareHouse/agentic-collections.git
/plugin marketplace add https://github.com/TheSoftwareHouse/agentic-collections.git
/plugin marketplace add https://github.com/TheSoftwareHouse/agentic-collections.git#some-branch
/plugin marketplace add ./agentic-collections        # from a local clone

The catalog is registered for you, in every project by default. It takes a scope of its own — run this from a repo's root to register it for that repo only:

claude plugin marketplace add TheSoftwareHouse/agentic-collections --scope project

--scope takes user, project or local, and means the same thing here as it does for plugins in Step 2.

Step 2 — install the plugins you want

Copy just the lines you need:

# Core — everyone
/plugin install tsh-core@tsh-agentic-collections

# Disciplines — pick the one that matches your job
/plugin install tsh-product-engineering@tsh-agentic-collections
/plugin install tsh-product-testing@tsh-agentic-collections
/plugin install tsh-product-management@tsh-agentic-collections
/plugin install tsh-product-design@tsh-agentic-collections
/plugin install tsh-platform-engineering@tsh-agentic-collections

# Stacks — pick what the project is built on
/plugin install tsh-stack-frontend@tsh-agentic-collections
/plugin install tsh-stack-nodejs@tsh-agentic-collections
/plugin install tsh-stack-serverless@tsh-agentic-collections
/plugin install tsh-stack-python@tsh-agentic-collections
/plugin install tsh-stack-aws@tsh-agentic-collections
/plugin install tsh-stack-gcp@tsh-agentic-collections
/plugin install tsh-stack-azure@tsh-agentic-collections

Each install asks you to pick a scope:

Scope Who gets it Where it's written
User You, in every project your user settings
Project Everyone working on this repo the repo's .claude/settings.json — committed, so it travels with the repo
Local You, in this repo only .claude/settings.local.json — keep it out of git

Pick User if you're installing for yourself. Pick Project to give a whole team the plugin via the repo. Pick Local to try one out in a single repo without committing anything.

The three plugin families usually want different answers, and it's worth being deliberate about it:

  • Core travels with you — User scope, same as your discipline plugin. It depends on neither your role nor the repo, so it should follow you everywhere.
  • Discipline plugins travel with you — User scope. Your job doesn't change from repo to repo.
  • Stack plugins travel with the repo — Project scope. The repo already knows what it's written in, so everyone working on it should get the same guidance, and nobody should carry another stack's skills around.

Prefer the shell (for onboarding scripts, or to skip the interactive prompt):

claude plugin install tsh-product-testing@tsh-agentic-collections --scope user
claude plugin install tsh-product-testing@tsh-agentic-collections --scope project
claude plugin install tsh-product-testing@tsh-agentic-collections --scope local

Three things the table doesn't say:

  • Scope is resolved against your current directory. Run project and local installs from the target repo's root, not from wherever your session started.
  • To confine a plugin to one project, scope both. The marketplace has its own scope (Step 1). Scope only the install and you've still registered the catalog everywhere.
  • Scopes stack. A committed project set is a starting point, not a cage — anyone can add their own plugins on top at user or local scope, and both sets load together.

local scope is only private if you keep the file out of git; nothing adds it for you. Add .claude/settings.local.json to your .gitignore — this repo's .gitignore does exactly that.

Installing never copies plugin files into your project. Everything lives in ~/.claude/plugins/marketplaces/, whatever the scope — scope decides which projects load a plugin, not where it's stored.

You can also browse instead of typing names: run /plugin, go to the Discover tab, and press Enter on a plugin to see its details and install it.

Step 3 — activate

Read the install summary:

  • Plugin is now active. → you're done.
  • Run /reload-plugins to activate. → run that command:
/reload-plugins

If it warns that reloading will re-read the conversation, rerun it as /reload-plugins --force. The reload summary counts only commands/ directories, so 0 skills is normal and doesn't mean anything failed.

Step 4 — sign in to Jira and Figma, once per machine

tsh-core bundles two MCP servers: the Atlassian one, so Claude reads and updates Jira work items and Confluence pages directly, and the Figma one, so it reads designs — layout, variables, components and a rendered export — instead of working from a description. Both need one interactive login each:

/mcp

Pick atlassian, finish the browser sign-in, then do the same for figma. You're done — on this machine, for every project. Every call then runs under your own account and grants nothing you could not already open in Jira or Figma yourself. Atlassian Cloud only; Figma works on all seats and plans. Skip either and that server simply shows as needing authentication; nothing else breaks, though the UI verification gate in tsh-product-engineering will report VERIFICATION NOT RUN rather than judging a design it cannot read.

Two things deliberately left out, both documented in plugins/tsh-core/README.md with an opt-in command: Bitbucket, because the Atlassian server covers it only under API-token authentication that needs an org admin to enable first, and Figma's desktop server, because it is a separate local endpoint that fails for anyone not running the desktop app and needs a Dev or Full seat on a paid plan.

Using what you installed

Skills and agents are invoked differently, and both are namespaced by plugin:

/tsh-product-testing:<skill-name>     # skills — type / and the plugin name
@tsh-product-testing:<agent-name>     # agents — @-mention typeahead

To see exactly what a plugin gives you, run /plugin, open the Installed tab, and press Enter on it. Same list from the shell:

claude plugin details tsh-product-testing@tsh-agentic-collections

Onboarding a whole project team at once

Installing at --scope project already does this — it writes your project's .claude/settings.json for you, in exactly the shape below. Commit that file and your team has the set.

Write it by hand instead when you want to declare the set before anyone installs anything: a repo template, or an onboarding PR that lands the plugin list alongside the code. Everyone who trusts the folder gets prompted to install the marketplace and the listed plugins:

{
  "extraKnownMarketplaces": {
    "tsh-agentic-collections": {
      "source": {
        "source": "github",
        "repo": "TheSoftwareHouse/agentic-collections"
      }
    }
  },
  "enabledPlugins": {
    "tsh-product-engineering@tsh-agentic-collections": true,
    "tsh-product-testing@tsh-agentic-collections": true,
    "tsh-stack-frontend@tsh-agentic-collections": true,
    "tsh-stack-nodejs@tsh-agentic-collections": true
  }
}

The stack plugins are the clearest case for committing this file: a repo's runtime targets are the same for everyone who clones it. List only the ones that apply — a backend-only service has no use for the frontend plugin.

tsh-core is deliberately not in that list, and that isn't an oversight to fix. It's user-scope by design — it follows the person, not the repo — so pinning it here would mean every repo in the company re-declaring the same line, and anyone who already installed it getting a redundant prompt. The discipline plugins are listed only because a repo may want to hand a new team a sensible starting set; drop them if your team installs their own.

Teammates still need to complete the install prompt the first time — a plugin from an external source doesn't load until it's actually installed. Until then Claude Code reports it as not installed and prints the claude plugin install command.

Staying current

/plugin marketplace update tsh-agentic-collections   # refresh the catalog
/plugin list                                         # what you have installed

Third-party marketplaces have auto-update off by default. To turn it on: run /plugin → Marketplaces → select tsh-agentic-collections → Enable auto-update.

The two commands answer different questions, and the distinction matters:

  • A catalog refresh (marketplace update) re-reads which plugins exist. A newly published plugin shows up in Discover as soon as you run it, with no version field involved — until then, /plugin install will tell you it doesn't exist.
  • A plugin update (/plugin update) pulls new content for plugins you already installed, and only lands when we bump that plugin's version. A refresh that reports no change usually means nothing was released.

Removing plugins

/plugin disable tsh-product-design@tsh-agentic-collections     # keep, stop loading
/plugin uninstall tsh-product-design@tsh-agentic-collections   # remove one plugin
/plugin marketplace remove tsh-agentic-collections             # remove everything

⚠️ Removing the marketplace also uninstalls every plugin you installed from it.

The plugins

Core — the ground under both

Everyone, at User scope.

Plugin Covers Install
tsh-core What holds regardless of role and stack — Git worktree lifecycle, the house standard for writing technical documents, authoring Claude Code extensions, the project-context files Claude Code loads, the decision-record format, a one-command project setup, and the bundled Atlassian and Figma MCP servers /plugin install tsh-core@tsh-agentic-collections

One plugin, not a family. Anything that would change if you switched job belongs in a discipline plugin; anything that would change if the repo switched language belongs in a stack plugin. There is no cap on what lands here, but the bar is the highest in the repo and every addition states what it costs — everyone installs this one, so every skill in it spends every teammate's context.

Disciplines — how we work

Install the one that matches your job, at User scope.

Plugin Covers Install
tsh-product-engineering Feature implementation, code review, refactoring, debugging, TDD workflows /plugin install tsh-product-engineering@tsh-agentic-collections
tsh-product-testing E2E testing, accessibility testing, exploratory/manual QA, test-plan authoring /plugin install tsh-product-testing@tsh-agentic-collections
tsh-product-management Workshop materials to a Jira-ready backlog: intent brief, epics and user stories, an eleven-pass quality review, and an outcome-based delivery roadmap — five review gates, with the Jira push enforced by a hook /plugin install tsh-product-management@tsh-agentic-collections
tsh-product-design UI/UX design work, design systems, design review, Figma-driven flows /plugin install tsh-product-design@tsh-agentic-collections
tsh-platform-engineering Infrastructure, CI/CD, IaC, containers, observability, deployment /plugin install tsh-platform-engineering@tsh-agentic-collections

Stacks — what we work with

Install what the project is built on, at Project scope.

Plugin Covers Install
tsh-stack-frontend TypeScript for the browser: version policy, the tsconfig baseline for a bundler-resolved app, the React + Vite split-config layout, and getting a real type-check into CI /plugin install tsh-stack-frontend@tsh-agentic-collections
tsh-stack-nodejs TypeScript for Node: version policy, the tsconfig baseline for a Node runtime, decorator metadata and class fields; NestJS 11 REST APIs /plugin install tsh-stack-nodejs@tsh-agentic-collections
tsh-stack-serverless AWS Lambda on OSLS: which libraries we use and which we avoid, how a serverless project is structured, least-privilege IAM, reserved concurrency, secrets at runtime, Step Functions task rules, and checks that execute the packaged artifact /plugin install tsh-stack-serverless@tsh-agentic-collections
tsh-stack-python Modern Python 3.12+: implementation and review practices, and Pydantic v2 / dataclass / SQLModel / SQLAlchemy 2.0 data modelling /plugin install tsh-stack-python@tsh-agentic-collections
tsh-stack-aws AWS: Terraform patterns for VPC, EKS, RDS and S3, Well-Architected defaults, and an evidence-based cost and tagging audit of a live account /plugin install tsh-stack-aws@tsh-agentic-collections
tsh-stack-gcp GCP: Terraform patterns for VPC, GKE, Cloud SQL, Cloud Storage and Cloud Run, Workload Identity and CMEK defaults, and a cost and labelling audit of a live project /plugin install tsh-stack-gcp@tsh-agentic-collections
tsh-stack-azure Azure: Terraform patterns for VNet, AKS, Flexible Server, Blob Storage, Application Gateway and Key Vault, Managed Identity defaults, and a cost and tagging audit via Resource Graph /plugin install tsh-stack-azure@tsh-agentic-collections

A stack here is a runtime target or a cloud provider, not a language — a repository has one cloud and one or more runtime targets. The frontend, Node and serverless plugins all carry TypeScript guidance, because a browser app, a Node service and a Lambda bundle genuinely need different compiler configuration — and because most projects have a frontend whatever their backend is written in. Install the ones the repo is built on.

Every stack gets its own plugin, named tsh-stack-<stack-name> — PHP, Java, Go and the rest are expected members of this family. Each appears here once it has real content to ship, rather than as an empty placeholder.

Coming from tsh-stack-typescript? It has been split into the two plugins above. There is no automatic migration, so run:

/plugin uninstall tsh-stack-typescript@tsh-agentic-collections
/plugin marketplace update tsh-agentic-collections
/plugin install tsh-stack-frontend@tsh-agentic-collections
/plugin install tsh-stack-nodejs@tsh-agentic-collections

implementing-nestjs-api moved to tsh-stack-nodejs unchanged. The old typescript-conventions skill is gone: its compiler and version material now lives in each plugin's configuring-typescript-for-<target> skill, and its type modelling material was dropped rather than duplicated — it will return as its own skill.

Troubleshooting

/plugin isn't recognized. Your Claude Code is too old. Update it, restart your terminal, and try again.

A plugin shows as ✘ disabled in claude plugin list. Check where you ran it. plugin list reports every plugin you've installed, anywhere, but Status reflects the current directory — a project or local scoped plugin is correctly disabled outside its project. Run it again from that project's root and it should read ✔ enabled.

A plugin listed in this README isn't in the Discover tab. Your cached copy of the catalog predates it. /plugin never re-fetches on its own and auto-update is off by default, so refresh it — see Staying current. /plugin update won't help: that updates plugins you already have, not the list of what exists.

Skills or agents don't appear after installing. Delete the marketplace's cached clone, restart Claude Code, then re-add (Step 1) and reinstall (Step 2):

rm -rf ~/.claude/plugins/marketplaces/tsh-agentic-collections

~/.claude/plugins/known_marketplaces.json is the index that tracks the clone and where it lives. (Older docs point at ~/.claude/plugins/cache — that path no longer exists, so removing it does nothing.)

Anything else. Run /plugin and open the Errors tab — load failures are reported there with the reason.

Contributing

Read CLAUDE.md for conventions, then copy templates/agent.md or templates/SKILL.md into the right plugin.

Test against the working tree without installing anything:

claude --plugin-dir ./plugins/tsh-product-testing
claude plugin validate ./plugins/tsh-product-testing

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages