Agent skill

Ad Next

by CorridorTech in CorridorTech/PoseCap

Survey the project's state across the six-layer artifact stack and recommend prioritized next actions, modeled on flutter doctor.

Apache-2.0Auto-check: notesMobile

Install Ad Next

skills CLI
$ npx skills add CorridorTech/PoseCap --skill ad-next -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CorridorTech/PoseCap ad-next --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/CorridorTech/PoseCap.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ad-next .claude/skills/ad-next && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ad-next
GitHub stars
220
Token cost
~3.3k tokens
SKILL.md length
1,504 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
Apache-2.0

At a glance

Survey the project's state across the six-layer artifact stack and recommend prioritized next actions, modeled on flutter doctor.

  • Works in 6 steps: Read state → Classify scenario before ranking → Layer-by-layer status → …
  • The user asks whats next
  • SKILL.md covers Step 0 — Read state, Step 1 — Classify scenario…, Step 2 — Layer-by-layer status and Step 3 — Cross-cut signals, plus 3 more sections
  • Calls flutter, git and npm

What it does

Ad Next is an agent skill from CorridorTech/PoseCap. Survey the project's state across the six-layer artifact stack and recommend prioritized next actions, modeled on flutter doctor. Use when the user asks "what's next", "next step", "where am I", "project status", "doctor", "what should I do", "audit my workflow", or whenever a navigation aid is needed mid-flow. Read-only; complements ad-drift (drift detection, a different question). Profile-aware — poc suppresses Layer 3 / 4 / 5 noise, team / mature run the full survey.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Cross-platform mobile apps and GitOps. It works with Flutter and Git. The licence is Apache-2.0.

When your agent uses it

  • The user asks whats next
  • What should I do
  • Audit my workflow
  • Whenever a navigation aid is needed mid-flow

Example prompts

  • “s next”
  • “next step”
  • “where am I”
  • “/ad-next”

Requirements

  • Pre-approved tools (allowed-tools): Read, Glob, Grep, Bash

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Read state
  2. Classify scenario before ranking
  3. Layer-by-layer status
  4. Cross-cut signals
  5. Prioritize next actions
  6. Profile-aware filtering

What it can do on your machine

Read from SKILL.md and the folder at commit 626701b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob
    • Grep
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • flutter
    • git
    • npm
    • cargo
    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ad Next loads about 3.3k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 1,504 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~123
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Glob, Grep, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from CorridorTech/PoseCap at commit 626701b, republished under its Apache-2.0 licence (© CorridorTech). 1,504 words, ~3,279 tokens.

Download SKILL.mdSave it as .claude/skills/ad-next/SKILL.md (or your agent's skills folder).
name
ad-next
description
Survey the project's state across the six-layer artifact stack and recommend prioritized next actions, modeled on `flutter doctor`. Use when the user asks "what's next", "next step", "where am I", "project status", "doctor", "what should I do", "audit my workflow", or whenever a navigation aid is needed mid-flow. Read-only; complements `ad-drift` (drift detection, a different question). Profile-aware — `poc` suppresses Layer 3 / 4 / 5 noise, `team` / `mature` run the full survey.
allowed-tools
Read, Glob, Grep, Bash
summary
State survey + prioritized next-action recommendations across the six-layer artifact stack. Read-only navigation aid (`flutter doctor` pattern).

/ad-next

Read-only state survey + prioritized next-action recommendations. Mirrors flutter doctor shape: layer-by-layer status + concrete fix per finding. Complements ad-drift — audit answers "is anything wrong?", next answers "what should I do?".

The skill writes nothing. Output is recommendations the user copies into the next conversation turn or the next CLI invocation.

Step 0 — Read state

Detect baseline:

  • Profile + kit version: read .claude/agentic-state.json and .agents/agentic-state.json if present. Profile defaults to team per ADR-0013 when state file missing or no profile field.
  • Filesystem signals at the repo root: AGENTS.md / CLAUDE.md, GUIDELINES.md, ARCHITECTURE.md, DESIGN.md, WORKFLOW.md, README.md, package.json / pyproject.toml / Cargo.toml / go.mod, .husky/ / lefthook.yml / .pre-commit-config.yaml, .github/workflows/, .git/HEAD (current branch).
  • Meaningful-code signals: non-trivial files under src/, app/, lib/, test/, tests/, packages/, framework entrypoints, or manifests with real scripts/dependencies. Treat only README/LICENSE/gitignore files, agentic state, empty artifact directories, and empty manifests as trivial.
  • Durable product-framing signals: PRD, specs, tasks, or README/docs/code that let you summarize the target user, problem, and current product behavior. Framework scaffolds or a few early files without that framing still count as unframed greenfield.
  • Per-artifact directories: list doc/product/, doc/specs/, doc/adr/, doc/tasks/. Read each file's frontmatter (Status:, Created:, Spec ref: for tasks) but not the full body — survey is fast and broad.
  • Git state: current branch, commits ahead of main (git rev-list --count main..HEAD), unpushed commits, working-tree dirtiness.
  • Root-doc freshness: inspect headings and references only. If a PRD exists but AGENTS.md / CLAUDE.md does not reference doc/product/ / PRD, mark the operational guide as possibly stale and recommend refreshing via /ad-bootstrap after the product contract.

Do not parse skill bodies. Do not run tests. Do not invoke other skills. The survey is shallow by design.

Step 1 — Classify scenario before ranking

Layer status is evidence; scenario determines the right next step.

  • Fresh / unframed greenfield: no durable product framing, even if a framework scaffold or a few early files already exist. This is a product-framing problem, not an AGENTS.md problem.
  • Product-framed greenfield: PRD exists, but no meaningful code yet. This is where /ad-bootstrap, /ad-guidelines, optional /ad-design, then /ad-spec become the normal sequence.
  • Brownfield: meaningful code exists and the scan can summarize the current product behavior. Existing code can supply product and architecture evidence; /ad-bootstrap is scan-first here and may precede PRD backfill.
  • Feature planning: PRD/spec artifacts exist and have downstream gaps (accepted PRD with no specs, accepted spec with no tasks).
  • Implementation in progress: dirty tree, branch ahead of main, in-progress tasks, blocked tasks, or proposed ADRs.
  • Maintenance / install hygiene: stale kit state, profile/install mismatch, missing expected conditional skills.

If scenarios overlap, report the strongest active scenario in this order: implementation in progress, maintenance/install hygiene, feature planning, product-framed greenfield, brownfield, fresh/unframed greenfield. If code exists but product behavior cannot be summarized, choose fresh/unframed greenfield rather than brownfield.

Step 2 — Layer-by-layer status

Render six sections in this exact order. For each section, list what is present, what is in flight, what is missing or stale. Use words for status (present, in flight, missing, stale) — no emoji.

Layer 1 — Constitution.

  • WORKFLOW.md present? (kit-shipped — should always be there)
  • AGENTS.md (or CLAUDE.md) present?
  • GUIDELINES.md present?
  • AGENTS.md missing is not the first greenfield finding when product framing is missing; recommend product discovery / PRD first, then /ad-bootstrap.

Layer 2 — Domain (CONTEXT.md).

  • CONTEXT.md present at repo root, or CONTEXT-MAP.md plus per-context CONTEXT.md files for multi-context repos? (Lazy-created per ADR-0019 — missing is a valid state for projects whose first domain term has not been resolved yet, not a finding to flag in poc / solo.)
  • For each present CONTEXT.md, report whether the Language section has at least one term with an _Avoid_: line — empty glossary is worse than no glossary.

Layer 3 — Product (doc/product/).

  • doc/product/PRD.md present (single-product), or PRODUCT-MAP.md plus per-product <slug>.md files (multi-product)? (Lazy-created per ADR-0027 — missing is a valid state at poc profile, where PRD is excluded entirely.)
  • In fresh/unframed greenfield at solo/team/mature, missing PRD is the primary navigation finding.
  • For each present PRD, report Status (draft / accepted / superseded) and the count of feature specs whose Related → PRD field points at it. Flag PRDs with Status: accepted and zero implementing specs — same stuck-state pattern as accepted-spec-with-zero-tasks at Layer 4.

Layer 4 — Specs (doc/specs/).

For each spec file, report Status and the count of tasks whose Spec ref field points at it:

0001-auth-flow.md (accepted, 0 implementing tasks)
0002-onboarding.md (shipped, 3 tasks done)

Flag specs with Status: accepted and zero implementing tasks — that is the most common stuck state.

If frontend signals exist, also report DESIGN.md as the visual contract. Missing DESIGN.md is a recommendation before /ad-spec only when frontend tokens/styles exist or the next feature touches UI.

Layer 5 — Plans / Decisions.

ARCHITECTURE.md — present? Missing architecture is a finding for team / mature brownfield projects with meaningful system patterns, or when a spec creates load-bearing architectural constraints. It is not the first step in fresh greenfield.

doc/adr/ — count by status: proposed, accepted, deprecated, superseded. Flag any proposed ADRs explicitly with their slug — they need a decision.

doc/tasks/ — count by status: proposed, in-progress, blocked, done. List in-progress and blocked tasks with their slugs and Spec ref. Flag tasks with no Spec ref and no Board ref as orphans (no clear scope tie).

Layer 6 — Code.

  • Branch: <name> (<n> commits ahead of main if applicable).
  • Tests: wired? (presence of npm test script / pytest / cargo test / go test ./...).
  • Hooks: wired? (presence of .husky/, lefthook.yml, .pre-commit-config.yaml, or active .git/hooks/ scripts).
  • CI: wired? (presence of .github/workflows/, .gitlab-ci.yml, .circleci/).
Show full SKILL.md (629 more words)Show less

Step 3 — Cross-cut signals

A few signals do not belong to one layer:

  • Pending fresh-context review. If branch is ≥1 commits ahead of main and no .agentic/reviews/<ts>-*.md exists for the current range, flag ad-review as a recommendation.
  • Spec ↔ task reciprocity. Tasks with non-empty Spec ref whose target spec does not exist → orphan task. Specs with Status: accepted or shipped and zero entries in their Related → Tasks list → spec without implementing tasks.
  • Profile vs install state. Profile says one set of skills; state file lists another. Surface the divergence and recommend agentic update or agentic profile set <name>.
  • Stale state file. kitVersion in state file ≠ currently-running kit. Recommend agentic update.

Step 4 — Prioritize next actions

Rank findings by workflow leverage, not by document layer number. Return 3–5 concrete invocations, each as a one-line "do X next" with the slug or path that makes the action unambiguous.

Priority heuristic:

  1. Protect active work. Blocked tasks, proposed ADRs blocking implementation, dirty/ahead branch needing /ad-review, stale state that makes installed skills unreliable.
  2. Fresh / unframed greenfield. For solo/team/mature, recommend /ad-grill-me when the product ask is fuzzy or /ad-prd when it is clear; then /ad-bootstrap. Do not recommend /ad-bootstrap first, even when a framework scaffold already exists.
  3. Product-framed greenfield. If PRD exists, recommend /ad-bootstrap when AGENTS.md / CLAUDE.md is missing or stale, then /ad-guidelines, optional /ad-design, then /ad-spec.
  4. Brownfield. If meaningful code exists and AGENTS.md / CLAUDE.md is missing, recommend /ad-bootstrap scan-first. Then recommend /ad-guidelines for standards, /ad-architecture for team/mature system patterns, or /ad-prd only when product scope is being backfilled or changed.
  5. Feature pipeline gaps. Accepted PRD without specs → /ad-spec; accepted spec without tasks → /ad-task; missing research before implementation → /ad-ground.
  6. Quality gates and drift. Mature hooks missing → /ad-hooks; orphan tasks/spec mismatches → /ad-drift; kit/profile drift → agentic update or agentic profile set <name>.

If nothing actionable surfaces, say so explicitly — empty output is real signal, not a gap. Phrase: "No urgent next action. Continue current work or invoke /ad-drift for a full drift check."

Step 5 — Profile-aware filtering

Apply per-profile rules at the end so the user sees output matched to their maturity:

  • poc: suppress Layer 3 (Product), Layer 4 (Specs), and Layer 5 (ADRs / tasks) sections entirely if those directories do not exist. Show Layer 1 + Layer 2 + Layer 6 only. Layer 2 (Domain) and Layer 3 (Product) render informationally — CONTEXT.md missing and PRD.md missing are not findings at poc (both are lazy-created; PRD is also profile-excluded). Recommendation set: /ad-grill-me for fuzzy exploration, /ad-ground for research-ready questions, /ad-spike when the technique is uncertain, /ad-drift for drift, agentic update for staleness. Do not recommend /ad-prd, /ad-spec, /ad-task, /ad-bootstrap, /ad-guidelines, /ad-architecture, /ad-adr, or /ad-hooks unless the user is graduating the project out of poc.
  • solo: Layer 3 / Layer 4 / Layer 5 render but ADR / ARCHITECTURE.md absence is informational — no "needs action" flag. PRD is universal for real products, but fresh greenfield still starts with product framing before /ad-bootstrap; brownfield quick fixes do not need PRD backfill before the fix. Specs are universal; spec-without-tasks remains a real finding. Layer 2 — same lazy-creation rule as poc.
  • team: full survey. Default profile. Fresh greenfield still routes through product discovery / PRD before /ad-bootstrap; brownfield may bootstrap scan-first from existing code.
  • mature: additionally flag hooks-not-wired louder ("WORKFLOW §11 binding for mature profile — /ad-hooks recommended"). Keep /ad-hooks after product/operational context unless the only finding is missing gates.

Output contract

A single Markdown message structured as:

## ad-next

**Profile:** <name> (kit v<X.Y.Z>)
**Branch:** <name> (<n> commits ahead of main)
**Scenario:** <detected scenario>

### Layer 1 — Constitution
<one-line status per artifact>

### Layer 2 — Domain (CONTEXT.md)
<present / lazy-missing; glossary-empty flag if file exists but has no terms>

### Layer 3 — Product (doc/product/)
<present / lazy-missing; PRD status + implementing-spec count if file exists>

### Layer 4 — Specs (doc/specs/)
<spec list with status + task count, or "no specs"; DESIGN.md status when frontend signals exist>

### Layer 5 — Plans / Decisions
<ADR + task summaries with explicit flags>

### Layer 6 — Code
<branch / tests / hooks / CI status>

### Recommended next (priority)
1. <action> — <one-line reason>
2. <action> — <one-line reason>
...

No file written. No state mutation. Recommendations are advisory; the user decides whether to invoke. Cross-references ad-drift (drift detection), agentic update (kit drift — CLI subcommand, not a skill), agentic profile (profile changes — CLI subcommand, not a skill) where they apply.

When the host exposes AskUserQuestion and the user follows up with a confirmation question after seeing the recommendations, prefer the structured prompt over inline text.

© CorridorTech, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/ad-next of CorridorTech/PoseCap.

Open the folder on GitHubat commit 626701b

Compare with similar skills

Ad Next next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ad Next compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ad Next this skillCorridorTech/PoseCap220—~3.3kAutomated safety check: NotesApache-2.0
Rebase Mainhyochan/flutter_calendar_carousel860—~662Automated safety check: PassMIT
Flutter Appccplugins/awesome-claude-code-plugins967—~1.1kAutomated safety check: NotesApache-2.0
Core API Changelibnativeapi/nativeapi157—~2.5kAutomated safety check: PassMIT
Ad Nextalexandremendoncaalvaro/CorridorKey-Runtime7551 repos~2.9kAutomated safety check: PassCustom licence
Git Worktree Precommit Hook Flutter Failuredivinevideo/divine-mobile265—~1kAutomated safety check: PassMPL-2.0

Similar skills

  • Rebase Main

    hyochan/flutter_calendar_carousel

    Safely update local main from origin/main, rebase the current fluttercalendarcarousel work branch, resolve conflicts without losing staged, unstaged, untracked, ignored, or generated work, and…

    860 GitHub stars~662 tokensUpdated 16 days ago
    MobileAuto-check passed
  • Flutter App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK, current packages, and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    MobileAuto-check: notes
  • Core API Change

    libnativeapi/nativeapi

    Carry a change to the C++ public API in core/ all the way downstream — design check, header edit, six platform implementations, C ABI + Rust/Dart/C/JS/Python regeneration, per-binding verification…

    157 GitHub stars~2.5k tokensUpdated today
    MobileAuto-check passed
  • Ad Next

    alexandremendoncaalvaro/CorridorKey-Runtime

    Survey the project's state across the six-layer artifact stack and recommend prioritized next actions, modeled on flutter doctor.

    755 GitHub starsUsed in 1 repo~2.9k tokens
    MobileAuto-check passed
  • Fix git pre-commit hook failures in Flutter projects when using git worktrees.

    265 GitHub stars~1k tokensUpdated today
    DevelopmentAuto-check passed
  • Review

    getsentry/sentry-dart

    Official

    Three-axis review of the branch diff — Standards (this repo's documented standards + public API surface), Spec (the originating Linear issue / PR), and Correctness (runtime bugs + the SDK threat…

    873 GitHub stars~1.3k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from CorridorTech/PoseCap

All 15 skills in this repo
  • Ad Adr

    CorridorTech/PoseCap

    Draft a new ADR (Architecture Decision Record) at doc/adr/NNNN-<short-title.md, using Michael Nygard's Context/Decision/Consequences/Alternatives pattern.

    220 GitHub stars~1k tokensUpdated today
    Auto-check: notes
  • Ad Architecture

    CorridorTech/PoseCap

    Generate ARCHITECTURE.md at the repo root by scanning the code first, pre-filling layers/patterns/observability/deployment from observed signals, then asking only the genuine gaps.

    220 GitHub stars~1.5k tokensUpdated today
    Auto-check: notes
  • Ad Archive

    CorridorTech/PoseCap

    Hard-delete completed plan files (tasks Status:done, specs Status:shipped, PRDs Status:superseded, ADRs Status:superseded or deprecated) via git rm, leaving git history as the only ledger.

    220 GitHub stars~1.9k tokensUpdated today
    Auto-check: notes
  • Ad Drift

    CorridorTech/PoseCap

    Read-only drift audit — compare AGENTS.md, ARCHITECTURE.md, ADR statuses, feature specs in doc/specs/, and documentation discipline against what the code actually does.

    220 GitHub stars~1.8k tokensUpdated today
    Auto-check: notes
  • Ad Hooks

    CorridorTech/PoseCap

    Scaffold deterministic quality gates per WORKFLOW.md §11 — pre-commit (lint, format, secret-scan), pre-push (build, unit, integration).

    220 GitHub stars~2.4k tokensUpdated today
    Auto-check: notes
  • Ad Bootstrap

    CorridorTech/PoseCap

    Generate AGENTS.md at the repo root by scanning the codebase first, pre-filling placeholders from observed signals, and asking only the genuine gaps.

    220 GitHub stars~2.4k tokensUpdated today
    Auto-check: warnings

Works with

Categories

Questions about Ad Next

What does Ad Next do?

Survey the project's state across the six-layer artifact stack and recommend prioritized next actions, modeled on flutter doctor. Ad Next is an agent skill from CorridorTech/PoseCap. Survey the project's state across the six-layer artifact stack and recommend prioritized next actions, modeled on flutter doctor.

When should I use Ad Next?

Ad Next fits situations like: the user asks whats next; what should I do; audit my workflow; whenever a navigation aid is needed mid-flow.

How do I install Ad Next in Claude Code?

Run `npx skills add CorridorTech/PoseCap --skill ad-next -a claude-code`. Or copy the skill folder (.claude/skills/ad-next in CorridorTech/PoseCap) into .claude/skills/ad-next in your project. Claude Code loads it when a task matches its description.

How do I install Ad Next in Codex?

Run `npx skills add CorridorTech/PoseCap --skill ad-next -a codex`. Or copy the skill folder (.claude/skills/ad-next in CorridorTech/PoseCap) into .agents/skills/ad-next in your project. Codex loads it when a task matches its description.

Can I use Ad Next in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CorridorTech/PoseCap --skill ad-next -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ad-next, .gemini/skills/ad-next, .github/skills/ad-next and .opencode/skills/ad-next in your project.

What does Ad Next need to run?

Going by SKILL.md and its folder, Ad Next needs the command-line tools its instructions call (flutter, git, npm, cargo and go). Its frontmatter pre-approves these tools: Read, Glob, Grep, Bash.

Does Ad Next access the network?

SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Ad Next safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Ad Next use?

Ad Next is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ad Next use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ad Next?

Skills that share tags, products or a category with Ad Next: Rebase Main (hyochan/flutter_calendar_carousel, 860 stars), Flutter App (ccplugins/awesome-claude-code-plugins, 967 stars), Core API Change (libnativeapi/nativeapi, 157 stars) and Ad Next (alexandremendoncaalvaro/CorridorKey-Runtime, 755 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ad Next?

CorridorTech (a GitHub organization) maintains it in CorridorTech/PoseCap, which has 220 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.

Source: CorridorTech/PoseCap on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.