# Padosoft Skills Router

> Use this skill when the user asks which Padosoft skills exist, which ones to install for the current project or stack, or how to update or remove them, and also when you are about to work on a company stack (Laravel, Node/Hono/Workers, React Native/Expo, HTML email, API, payments) and no skill covering that stack is installed: it points to the right skill and gives the exact install command. It does not replace the stack skills and does not do their technical work for them.

- Skill: `padosoft/padosoft-skills-router` (Agent Skill)
- Install (CLI): `npx skillmds@latest add padosoft/padosoft-skills-router`
- Raw SKILL.md: https://api.skillmd.com/api/skills/padosoft/padosoft-skills-router/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- License: MIT
- Author: padosoft (https://skillmd.com/u/padosoft)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/padosoft/padosoft-skills-router

---


# Padosoft Skills Router

Index of the company skills. It serves one purpose: **work out which skill is needed right now and say how
to install it**.

## When to step in

1. The user asks which skills exist, which ones to install, or how to update them.
2. You are about to work on a company stack and you do **not** see the skill that covers it: say so in one
   line, offer the command, and carry on with the work anyway if the user does not install it.
3. A new project is being set up: suggest the profile that matches what you see in the repository
   (`composer.json` with Laravel → `laravel` profile; `app.json`/Expo → `react-native`; email templates → `email`).

Do not step in when the stack skill is already active: in that case the work is its job, not yours.

## Commands

```bash
# by profile (recommended) - no need to clone the repo
curl -fsSL https://raw.githubusercontent.com/padosoft/skills/main/scripts/install-profile.sh | bash -s -- core --global
curl -fsSL https://raw.githubusercontent.com/padosoft/skills/main/scripts/install-profile.sh | bash -s -- laravel email

# inside the cloned repo: bash scripts/install-profile.sh core --global

# single skill, update, list
npx skills add https://github.com/padosoft/skills/tree/main/skills/<skill-name>
npx skills update
npx skills list
```

Rule of thumb: only the `core` profile goes **global**; the stack is installed **in the project** and
committed, so whoever clones it finds it there with no onboarding.

## Catalog

<!-- CATALOG:START - generated by scripts/build_catalog.py, do not edit by hand -->

_44 skills · index generated automatically, do not edit by hand._

| Skill | Profiles | Scope | What it does |
|---|---|---|---|
| [`padosoft-admin-interface`](https://github.com/padosoft/skills/tree/main/skills/padosoft-admin-interface) | laravel | project | A back-office screen is a filtered query with a chart on top, and four states that must all exist. |
| [`padosoft-agent-host-boundaries`](https://github.com/padosoft/skills/tree/main/skills/padosoft-agent-host-boundaries) | ai, api | project | The host decides what an agent may do, what gets recorded, and what any of it proves. |
| [`padosoft-agent-instructions-sync`](https://github.com/padosoft/skills/tree/main/skills/padosoft-agent-instructions-sync) | core | global | A rule one agent knows and the others do not is worse than no rule. |
| [`padosoft-ai-evaluation`](https://github.com/padosoft/skills/tree/main/skills/padosoft-ai-evaluation) | ai | project | A number without a dataset version and a run identity is not a measurement. |
| [`padosoft-api-security-review`](https://github.com/padosoft/skills/tree/main/skills/padosoft-api-security-review) | api, node | project | Ten checks on an API change, each carrying the mistake that produces it. |
| [`padosoft-atomic-invariants`](https://github.com/padosoft/skills/tree/main/skills/padosoft-atomic-invariants) | core | global | Either the invariant is recorded in the same atomic step that checked it, or it does not exist. |
| [`padosoft-auth-hardening`](https://github.com/padosoft/skills/tree/main/skills/padosoft-auth-hardening) | core | global | Identity is a set of doors, and hardening means none of them disagrees with the others. |
| [`padosoft-ci-failure-triage`](https://github.com/padosoft/skills/tree/main/skills/padosoft-ci-failure-triage) | devops | project | The failed step says where the run stopped, not why — collect everything before diagnosing. |
| [`padosoft-ci-workflow-gates`](https://github.com/padosoft/skills/tree/main/skills/padosoft-ci-workflow-gates) | devops | project | A gate that cannot fail is not a gate. |
| [`padosoft-contract-changes`](https://github.com/padosoft/skills/tree/main/skills/padosoft-contract-changes) | core | global | Changing a signature is editing everything that agreed to it. |
| [`padosoft-crash-triage`](https://github.com/padosoft/skills/tree/main/skills/padosoft-crash-triage) | core | global | Never write a claim stronger than the evidence you actually have. |
| [`padosoft-cross-platform-scripting`](https://github.com/padosoft/skills/tree/main/skills/padosoft-cross-platform-scripting) | devops | project | The ways a Windows workstation and a Linux runner disagree silently. |
| [`padosoft-database-design`](https://github.com/padosoft/skills/tree/main/skills/padosoft-database-design) | data, laravel | project | The index, the key and the partition are part of the table's design, not a later fix. |
| [`padosoft-docs-match-code`](https://github.com/padosoft/skills/tree/main/skills/padosoft-docs-match-code) | core | global | Every fact quoted from the code is verified against the code before merging. |
| [`padosoft-durable-effects`](https://github.com/padosoft/skills/tree/main/skills/padosoft-durable-effects) | api, data | project | A queue moves work, not effects — claim the effect atomically before performing it. |
| [`padosoft-edge-worker-security`](https://github.com/padosoft/skills/tree/main/skills/padosoft-edge-worker-security) | node, api | project | When two layers could enforce a control, each assumes the other does and nobody does. |
| [`padosoft-email-html-builder`](https://github.com/padosoft/skills/tree/main/skills/padosoft-email-html-builder) | email | project | HTML email that passes the deliverability checks on the first send. |
| [`padosoft-environment-gating`](https://github.com/padosoft/skills/tree/main/skills/padosoft-environment-gating) | core | global | The answers are three, not two — a convenience defaults off, a protection defaults on. |
| [`padosoft-evidence-boundaries`](https://github.com/padosoft/skills/tree/main/skills/padosoft-evidence-boundaries) | core | global | Name the claim, then name what would prove it. |
| [`padosoft-failure-visibility`](https://github.com/padosoft/skills/tree/main/skills/padosoft-failure-visibility) | core | global | The caller must be able to tell success from failure, and a check that does not decide is not a check. |
| [`padosoft-frontend-testability`](https://github.com/padosoft/skills/tree/main/skills/padosoft-frontend-testability) | laravel, node, react-native | project | The markup owes the test a stable anchor and an observable state. |
| [`padosoft-git-commit-integrity`](https://github.com/padosoft/skills/tree/main/skills/padosoft-git-commit-integrity) | core | global | What git recorded is not always what you changed. |
| [`padosoft-hono-api-conventions`](https://github.com/padosoft/skills/tree/main/skills/padosoft-hono-api-conventions) | node, api | project | Three layers one direction, typed context, bound SQL, and the mistakes that keep returning. |
| [`padosoft-i18n-hygiene`](https://github.com/padosoft/skills/tree/main/skills/padosoft-i18n-hygiene) | laravel, node, react-native | project | A key is only unused once you have searched for every form it can be written in. |
| [`padosoft-knowhow-harvest`](https://github.com/padosoft/skills/tree/main/skills/padosoft-knowhow-harvest) | core | global | Harvest the rule, leave the story, and record what you decided so nobody mines it twice. |
| [`padosoft-laravel-conventions`](https://github.com/padosoft/skills/tree/main/skills/padosoft-laravel-conventions) | laravel | project | Where the logic lives and what crosses which boundary, on any framework version. |
| [`padosoft-laravel-scaffolding`](https://github.com/padosoft/skills/tree/main/skills/padosoft-laravel-scaffolding) | laravel | project | The code is the easy part — what gets forgotten is the wiring. |
| [`padosoft-laravel-security-review`](https://github.com/padosoft/skills/tree/main/skills/padosoft-laravel-security-review) | laravel | project | Ten checks plus three rules whose cost is disproportionate to how easy they are to get wrong. |
| [`padosoft-logging-discipline`](https://github.com/padosoft/skills/tree/main/skills/padosoft-logging-discipline) | core | global | Keep the diagnosis, drop the data — and the log is not the only way data gets out. |
| [`padosoft-mobile-security-review`](https://github.com/padosoft/skills/tree/main/skills/padosoft-mobile-security-review) | react-native | project | The bundle ships to every device and can be decompiled — everything follows from that. |
| [`padosoft-openapi-spec-workflow`](https://github.com/padosoft/skills/tree/main/skills/padosoft-openapi-spec-workflow) | api, node | project | A published contract other projects depend on — change it in every place, once. |
| [`padosoft-payments-reconciliation`](https://github.com/padosoft/skills/tree/main/skills/padosoft-payments-reconciliation) | payments | project | Money is a ledger that has to balance, not a status field. |
| [`padosoft-pr-review-triage`](https://github.com/padosoft/skills/tree/main/skills/padosoft-pr-review-triage) | devops | project | A bot review is a list of candidates, not a task list. |
| [`padosoft-query-performance`](https://github.com/padosoft/skills/tree/main/skills/padosoft-query-performance) | data, laravel | project | The code was written against the volume that existed then, and the volume moved. |
| [`padosoft-rag-ingestion-security`](https://github.com/padosoft/skills/tree/main/skills/padosoft-rag-ingestion-security) | ai, api | project | The ingestion contract records what a document is, not where its authority comes from. |
| [`padosoft-rag-knowledge-base`](https://github.com/padosoft/skills/tree/main/skills/padosoft-rag-knowledge-base) | ai, data | project | A model may propose knowledge; only a human promotes it. |
| [`padosoft-react-native-conventions`](https://github.com/padosoft/skills/tree/main/skills/padosoft-react-native-conventions) | react-native | project | The rules that survived independently in two production apps. |
| [`padosoft-rn-screen-scaffolding`](https://github.com/padosoft/skills/tree/main/skills/padosoft-rn-screen-scaffolding) | react-native | project | What breaks is never the code, it is the registration. |
| [`padosoft-security-baseline`](https://github.com/padosoft/skills/tree/main/skills/padosoft-security-baseline) | core | global | A control you cannot prove is a control you do not have. |
| [`padosoft-skill-creator`](https://github.com/padosoft/skills/tree/main/skills/padosoft-skill-creator) | core | global | Skills that follow the spec and the repo conventions, and carry no provenance out with them. |
| [`padosoft-skills-router`](https://github.com/padosoft/skills/tree/main/skills/padosoft-skills-router) | core | global | Work out which skill is needed right now, and how to install it. |
| [`padosoft-tenant-isolation`](https://github.com/padosoft/skills/tree/main/skills/padosoft-tenant-isolation) | core | global | The scope belongs to the key, not to the filter. |
| [`padosoft-test-integrity`](https://github.com/padosoft/skills/tree/main/skills/padosoft-test-integrity) | core | global | A test that cannot fail is worse than no test. |
| [`padosoft-verify-before-writing`](https://github.com/padosoft/skills/tree/main/skills/padosoft-verify-before-writing) | core | global | Never invent silently — ask, or record the doubt and report it. |

## Profiles

- **core** — `padosoft-agent-instructions-sync`, `padosoft-atomic-invariants`, `padosoft-auth-hardening`, `padosoft-contract-changes`, `padosoft-crash-triage`, `padosoft-docs-match-code`, `padosoft-environment-gating`, `padosoft-evidence-boundaries`, `padosoft-failure-visibility`, `padosoft-git-commit-integrity`, `padosoft-knowhow-harvest`, `padosoft-logging-discipline`, `padosoft-security-baseline`, `padosoft-skill-creator`, `padosoft-skills-router`, `padosoft-tenant-isolation`, `padosoft-test-integrity`, `padosoft-verify-before-writing`
- **laravel** — `padosoft-admin-interface`, `padosoft-database-design`, `padosoft-frontend-testability`, `padosoft-i18n-hygiene`, `padosoft-laravel-conventions`, `padosoft-laravel-scaffolding`, `padosoft-laravel-security-review`, `padosoft-query-performance`
- **node** — `padosoft-api-security-review`, `padosoft-edge-worker-security`, `padosoft-frontend-testability`, `padosoft-hono-api-conventions`, `padosoft-i18n-hygiene`, `padosoft-openapi-spec-workflow`
- **react-native** — `padosoft-frontend-testability`, `padosoft-i18n-hygiene`, `padosoft-mobile-security-review`, `padosoft-react-native-conventions`, `padosoft-rn-screen-scaffolding`
- **email** — `padosoft-email-html-builder`
- **api** — `padosoft-agent-host-boundaries`, `padosoft-api-security-review`, `padosoft-durable-effects`, `padosoft-edge-worker-security`, `padosoft-hono-api-conventions`, `padosoft-openapi-spec-workflow`, `padosoft-rag-ingestion-security`
- **payments** — `padosoft-payments-reconciliation`
- **data** — `padosoft-database-design`, `padosoft-durable-effects`, `padosoft-query-performance`, `padosoft-rag-knowledge-base`
- **devops** — `padosoft-ci-failure-triage`, `padosoft-ci-workflow-gates`, `padosoft-cross-platform-scripting`, `padosoft-pr-review-triage`
- **ai** — `padosoft-agent-host-boundaries`, `padosoft-ai-evaluation`, `padosoft-rag-ingestion-security`, `padosoft-rag-knowledge-base`

## Install by profile

```bash
./scripts/install-profile.sh core --global      # cross-project, on every project
./scripts/install-profile.sh laravel email      # the stack of this project
```

## Install a single skill

```bash
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-admin-interface
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-agent-host-boundaries
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-agent-instructions-sync
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-ai-evaluation
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-api-security-review
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-atomic-invariants
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-auth-hardening
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-ci-failure-triage
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-ci-workflow-gates
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-contract-changes
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-crash-triage
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-cross-platform-scripting
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-database-design
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-docs-match-code
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-durable-effects
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-edge-worker-security
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-email-html-builder
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-environment-gating
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-evidence-boundaries
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-failure-visibility
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-frontend-testability
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-git-commit-integrity
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-hono-api-conventions
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-i18n-hygiene
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-knowhow-harvest
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-laravel-conventions
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-laravel-scaffolding
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-laravel-security-review
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-logging-discipline
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-mobile-security-review
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-openapi-spec-workflow
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-payments-reconciliation
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-pr-review-triage
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-query-performance
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-rag-ingestion-security
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-rag-knowledge-base
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-react-native-conventions
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-rn-screen-scaffolding
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-security-baseline
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-skill-creator
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-skills-router
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-tenant-isolation
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-test-integrity
npx skills add https://github.com/padosoft/skills/tree/main/skills/padosoft-verify-before-writing
```

<!-- CATALOG:END -->

## What NOT to do

- Do not install anything without telling the user: offer the command, the decision is theirs.
- Do not suggest the whole repository (`npx skills add padosoft/skills`) unless that is what the user wants:
  it would install every skill, including the ones irrelevant to the project.
- Do not duplicate an installation: if a skill is already there through a Claude Code plugin, do not add it
  through the CLI as well.

