Skill · loaded on demand
The Focus AI Standards
Skill: SKL-014
Install: standards-map
Provenance: Authored here
Relates to: STD-007, STD-008
The Focus AI
standards.thefocus.ai

standards-map

Status of this skill

This is a skill: a capability an agent loads when its triggers match. It binds nothing — it is something an agent can do, not something any repository must do (STD-011).

Look up the latest TheFocus.AI standards, inspect the current (or named) project, and write a dated mapping report: how the project implements each standard, which best-practice guides apply or are N/A, intentional product exceptions, and soft gaps. Read-only by default — does not migrate the project. Use when asked how a project maps to standards, which guides apply, for a standards compliance report, or "standards map". Triggers on: "standards map", "map to standards", "how do we map to standards", "which standards apply", "standards report", "guide applicability", "does this project follow standards", "standards coverage".

Agent · install with
skills add The-Focus-AI/standards --skill standards-map

Produce a dated report that answers:

  1. What does this project look like against the latest TheFocus.AI standards?
  2. Which best-practice guides apply, partially apply, or are N/A — and why?
  3. What are intentional product exceptions vs compliance gaps?

This skill is read-only by default. It does not edit the project. If the user wants a migration plan or to apply fixes, hand off to standardize-project after the report (or when they ask).

SkillJob
standards-mapLatest standards → mapping report (this skill)
standardize-projectAudit + migration plan → optional apply
setup-projectGreenfield scaffold

Target project

Resolve the target before reading anything else:

  1. Path the user named (absolute or relative).
  2. Else the current working directory if it looks like a project (has AGENTS.md, mise.toml, package.json, or .git).
  3. Else ask and stop.

Use explicit paths for every read. Never write into the standards repo by accident when the target is a sibling project.

Source of truth — latest standards

Standards live in The-Focus-AI/standards. Always pin the report to a concrete revision (commit SHA + date), not "whatever I remember."

Resolve the standards tree (in order)

  1. STANDARDS_REPO env if set and the path contains best-practices/GDE-009-technology-defaults.md.
  2. Sibling / known clones (first hit wins):
  3. ../standards relative to the target
  4. ../../standards if target is deeper
  5. $HOME/The-Focus-AI/standards
  6. Any path the user named for standards
  7. GitHub (latest main) when no local clone is usable:
  8. Prefer gh api repos/The-Focus-AI/standards/commits/main --jq .sha for the SHA
  9. Fetch files with gh api / gh browse raw, or a shallow clone into a temp dir: git clone --depth 1 https://github.com/The-Focus-AI/standards.git <tmpdir>
  10. If the network/auth fails, say so and stop — do not invent standards from model memory.

Record in the report:

Read these from the resolved standards tree

Required:

Conditionally (after product shape is known):

If the project looks like…Also read
Vercel / Next / preview deploysbest-practices/GDE-010-vercel-deployment.md
Cloud Run / App Engine / gcloudbest-practices/GDE-005-gcp-deployment.md
Gaia / habitats / GCE agent fleetbest-practices/GDE-004-gce-gaia-runtime.md
Clerk / user authbest-practices/GDE-002-clerk.md
A2A / MCP agent servicebest-practices/GDE-001-a2a-agent.md

Do not skip the conditional list: the report must still name those guides under "N/A" when they do not apply, with one-line reasons.

Inspect the target project

Follow the standards audit order, adapted for a map (not a migration plan):

  1. Agent instructionsAGENTS.md, CLAUDE.md, .cursor/rules, equivalents.
  2. Toolingmise.toml, package manager files, lockfiles, scripts/tasks.
  3. Secretsfnox.toml, .fnox/ presence (not contents), .env* risk, gitignore.
  4. pi.pi/settings.json, required packages vs pi-extensions.md.
  5. Skillsskills-lock.json vs standards lock / skills.md (missing, deprecated to-prd/to-issues, title-case keys, wrong sources).
  6. Workflow — README, docs/agents/issue-workflow.md, tracker, wayfinder docs.
  7. Deploy shape — Dockerfile, Vercel, GH Actions, Pages, Cloud Run, none.
  8. Product stack — language, build vs no-build, auth, database, hosting.
  9. Git hygiene.gitignore, committed secrets risk, generated dirs.

Capture concrete evidence (task names, file paths, skill counts). Prefer mise tasks, reading files, and lockfile keys over guessing.

Never print secret values. Key names only.

Classify every finding

Use these buckets so the report does not confuse product law with tech debt:

BucketMeaning
MeetsImplements the standard as written
ExceptionDeliberate product choice documented (e.g. vanilla JS / no build) — not a bug
Soft gapPartial / shared vault / docs only — should improve but not blocking
GapStandard expects it; missing or wrong without a documented exception
N/AGuide or rule does not apply to this product shape

When project AGENTS.md conflicts with standards defaults, name the conflict — do not silently pick standards over product law. Exceptions that are written down belong in Exception; silent drift belongs in Gap.

Write the report

Path

Prefer, under the target project:

reports/YYYY-MM-DD-standards-map.md

Use today's real date. Create reports/ if needed.

If the user asked for stdout-only or a different path, honor that, but still offer to write the file.

Required sections

Use this skeleton (adapt tables; do not drop sections):

---
title: "Standards map: <project-name>"
date: YYYY-MM-DD
project: <path or github slug>
standards_source: <path or github:The-Focus-AI/standards@sha>
standards_sha: <full or short sha>
standards_date: <commit date if known>
mode: map   # not a migration
---

# Standards map — <project-name>

## Product in one line

| | |
| --- | --- |
| What | … |
| Stack | … |
| Host | … |
| Backend | … / none |
| Org remote | … |

## Standards revision

- Source: …
- SHA: …
- Note if local clone may lag `origin/main`.

## Scorecard

| Area | Grade or status | Notes |
| --- | --- | --- |
| Tooling (mise/pnpm) | | |
| Secrets (fnox) | | |
| Agent instructions | | |
| Skills lock | | |
| pi | | |
| Workflow docs | | |
| Deploy | | |
| App stack vs defaults | | |

## Standards surface → project files

| Standards concept | Expected | Project artifact | Status |
| --- | --- | --- | --- |
| Project agent guide | AGENTS.md | … | Meets / Gap / … |
| Tooling / tasks | mise.toml | … | |
| Secrets | fnox.toml | … | |
| Skills lock | skills-lock.json | … | |
| Issue workflow | docs/agents/issue-workflow.md | … | |
| pi config | .pi/settings.json | … | |
| README | human entry | … | |
| … | | | |

### Required mise tasks

| Task | Expected role | Project behavior | Status |
| --- | --- | --- | --- |
| install | deps + skills | | |
| dev | run app / checks | | |
| lint | quality | | |
| test | automated | | |
| deploy | ship | | |
| setup / secrets:* | onboarding | | |

## Guide-by-guide applicability

### Always / core for this product

For each applicable guide (`best-practices/GDE-009-technology-defaults.md`, `skills.md`, `security.md`,
`pi-extensions.md`, `organization.md`, relevant parts of `deployment.md`):

- What the guide requires
- How this project maps (paths, tasks, evidence)
- Exceptions or soft gaps

### Conditionally applicable

Guides that only matter for certain shapes (or partial sections of deployment.md).

### Does not apply today

| Guide | Why N/A | Would apply if… |
| --- | --- | --- |
| vercel-deployment.md | | |
| gcp-deployment.md | | |
| gce-gaia-runtime.md | | |
| clerk.md | | |
| a2a-agent.md | | |

## Skills map

| Category | In standards lock | In project lock | Notes |
| --- | --- | --- | --- |
| Focus-owned | … | … | missing / extra / wrong source |
| Third-party | … | … | |
| mattpocock set | … | … | deprecated names? |

Call out title-case lock keys, `to-prd` / `to-issues`, and skills not from
`The-Focus-AI/standards` when they should be.

## Architecture vs default stack

| Default standard | This project | Treatment |
| --- | --- | --- |
| TypeScript | | Meets / Exception / Gap |
| Build pipeline | | |
| Neon / Postgres | | |
| Clerk | | |
| Vercel (if web app) | | |

## How guides apply by kind of work

Short routing table: work type → open which guide/skill first.

## Soft gaps and gaps

Prioritized list. Each item: finding, standards file, severity, suggested next step
(`standardize-project`, manual, ignore as exception).

## Mental model

Optional one-diagram summary: standards shell vs product exception zone vs
N/A stack guides.

## Recommended next steps

1–5 bullets. If migration is warranted, point to `standardize-project` — do not
start migrating inside this skill unless the user explicitly asked to apply fixes.

Deliver

  1. Write the markdown file under the target project's reports/.
  2. Summarize in chat: product one-liner, scorecard highlights, top gaps/exceptions, path to the report, standards SHA used.
  3. Ask whether they want standardize-project to close gaps (only if gaps exist).

Optional modes (if the user asks)

ModeBehavior
Default / mapReport only (above)
Diff skillsEmphasize lockfile key/source/hash drift vs standards
Guides onlyApplicability matrix without full file inventory
Compare two projectsTwo targets, shared standards SHA, side-by-side scorecard

Still write a dated report unless they forbid files.

Pitfalls