Agent skill

Loop Spec

by getlago in getlago/lago-front

Phase 1 of the loop pipeline for lago-front. An agent skill from getlago/lago-front.

AGPL-3.0Auto-check passed

Install Loop Spec

skills CLI
$ npx skills add getlago/lago-front --skill loop-spec -a claude-code

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

GitHub CLI
$ gh skill install getlago/lago-front loop-spec --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/getlago/lago-front.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/loop-spec .claude/skills/loop-spec && 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
loop-spec
GitHub stars
163
Token cost
~1.6k tokens
SKILL.md length
722 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Phase 1 of the loop pipeline for lago-front. An agent skill from getlago/lago-front.

  • Works in 5 steps: Extract the issue ID from the URL… → Fetch all sources → Explore the codebase. Locate every file… → …
  • User says /loop-spec <linear-url [notion-urls...]
  • SKILL.md covers Steps and Hard rules
  • Calls pnpm

What it does

Loop Spec is an agent skill from getlago/lago-front. Phase 1 of the loop pipeline for lago-front. Takes a Linear ticket URL (required) and optionally Notion spec page URLs, reads all sources, verifies every premise the ticket states against the running code, and writes an operational spec to the run state dir. Use when user says "/loop-spec <linear-url [notion-urls...]" or asks to spec a ticket for the loop pipeline.

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

It works with Notion. The repository describes itself as: Open Source Metering and Usage Based Billing. The licence is AGPL-3.0.

When your agent uses it

  • User says /loop-spec <linear-url [notion-urls...]
  • Asks to spec a ticket for the loop pipeline

Example prompts

  • “/loop-spec <linear-url [notion-urls...]”
  • “/loop-spec”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Extract the issue ID from the URL (pattern [A-Z]+-\d+, uppercase — any Linear team prefix). All state for this run lives in the state dir…
  2. Fetch all sources
  3. Explore the codebase. Locate every file the ticket touches (components, hooks, GraphQL documents, translations, tests). Follow existing…
  4. Write spec.md in the state dir, with exactly these sections
  5. Report the spec path, a 3-line summary, and every unverified premise to the operator.

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm, 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

Loop Spec loads about 1.6k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 722 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 getlago/lago-front at commit d4cb9fe, republished under its AGPL-3.0 licence (© getlago). 722 words, ~1,627 tokens.

Download SKILL.mdSave it as .claude/skills/loop-spec/SKILL.md (or your agent's skills folder).
name
loop-spec
description
Phase 1 of the loop pipeline for lago-front. Takes a Linear ticket URL (required) and optionally Notion spec page URLs, reads all sources, verifies every premise the ticket states against the running code, and writes an operational spec to the run state dir. Use when user says "/loop-spec <linear-url> [notion-urls...]" or asks to spec a ticket for the loop pipeline.

Loop Spec — phase 1 of loop-run

Input: a Linear ticket URL (REQUIRED — it provides the ISSUE-ID that keys the whole pipeline), plus optionally one or more Notion page URLs with product/technical specs. Both can be given together. If no Linear URL was provided, ask for it with AskUserQuestion and stop until given.

Repo: the lago-front checkout, front/ inside the lago monorepo. If the current session is not in the lago project, STOP — this pipeline is lago-front only.

State dir: $LOOP_STATE_DIR/<ISSUE-ID>/ (default ~/.claude/loop-state/<ISSUE-ID>/) — per-developer, outside the repo, never committed.

This phase is the only one that fetches. spec.md carries everything the builder and the reviewers need from Linear, Notion and Figma, verbatim where it matters; no later phase re-reads a source.

Steps

  1. Extract the issue ID from the URL (pattern [A-Z]+-\d+, uppercase — any Linear team prefix). All state for this run lives in the state dir — create the directory.

  2. Fetch all sources:

    • Linear ticket via the Linear MCP get_issue tool — the WHOLE ticket: title, description, acceptance criteria, current state, labels, relations, attachments and linked designs. Then the full comment thread via list_comments: comments carry decisions, scope changes and repro details that never made it back into the description — on conflict, a later comment overrides the description; note it in spec.md.
    • A design attachment is a source, not a bookmark. When the ticket links a Figma node or any mockup, OPEN it (get_screenshot on the node, get_metadata for its sub-frames) and derive acceptance criteria from it: the literal copy of every label and empty state, the container shape, one criterion per state the mockup draws for the same control.
    • Every Notion URL given, via the Notion MCP notion-fetch tool, plus any Notion page linked inside the ticket that clearly holds the product/tech spec.
    • Conflict between sources → the Linear ticket wins for scope, Notion wins for product/UX detail; note the conflict in spec.md.
  3. Explore the codebase. Locate every file the ticket touches (components, hooks, GraphQL documents, translations, tests). Follow existing patterns — read neighboring code, don't invent structure. If GraphQL operations change, note that pnpm codegen is required. Then apply the checks below; they are capped by scripts/skill-budget.sh.

    <!-- checks:start -->
    1. Every premise is verified or marked. For each constraint the ticket states as a fact about the code ("the frontend must handle X itself", "the backend does not send Y", "this component is only used here"), find the line that confirms it and record it under ## Premises as verified: <path:line>. Nothing confirms it → premise: unverified — <what the code shows instead>. A criterion resting on an unverified premise is flagged in ## Acceptance criteria. The most expensive diff this pipeline has shipped solved around a constraint that was false against the running code.
    2. A backend default is a backend fact. When the ticket says the backend derives, defaults or backfills a value, open the model and the service: record the callback, when it fires, and what input triggers it, then state which side owns the default. A front-end fallback mirroring a backend default is duplication to delete, not scope to add.
    3. Date fields are pinned as calendar day or instant, with write zone and display zone stated together. Lago floors arrears dates to UTC midnight and date-only pickers are pinned to TimezoneEnum.TzUtc, so a date-only field is written AND displayed in UTC.
    4. Existing mechanism first. For each behaviour the ticket asks for, name the global or shared thing that may already provide it (Apollo error link, toast layer, router wrappers, design-system component, a sibling hook) and record whether it covers the case. "Files to touch" lists a new file only when this search came back empty, with the search recorded.
    <!-- checks:end -->
  4. Write spec.md in the state dir, with exactly these sections:

    markdown
    # <ISSUE-ID>: <ticket title>
    
    ## Sources
    - Linear: <linear URL>
    - Notion: <each notion URL, or "none">
    
    ## Ticket
    <the ticket verbatim: title, description, acceptance criteria as written, and every comment that changed scope or carries a decision — quoted, with author role and date. Reviewers read this instead of Linear.>
    
    ## Summary
    <2-4 sentences: what changes and why>
    
    ## Premises
    <one line per claim the ticket makes about the code: `verified: <path:line>` or `premise: unverified — <what the code shows>`>
    
    ## Acceptance criteria
    <numbered list, testable statements, taken/derived from the ticket; a criterion resting on an unverified premise says so>
    
    ## Files to touch
    <bullet list of exact paths relative to front/, one line each with what changes there; a new file names the existing-mechanism search that came back empty>
    
    ## Non-goals
    <what is explicitly out of scope>
    
    ## Verification
    - `pnpm lint`
    - `pnpm types`
    - `pnpm translations:inspect`
    - `pnpm translations:ensure-consistency`
    <optional: scoped jest paths ONLY for the touched domain, e.g. `pnpm test src/components/foo`>
    <optional: `pnpm codegen` + clean-diff check if GraphQL changed>
  5. Report the spec path, a 3-line summary, and every unverified premise to the operator.

Show full SKILL.md (87 more words)Show less

Hard rules

  • Read-only on Linear: no comments, no state changes in this phase.
  • No code edits in this phase. No files written inside the repo.
  • If the ticket lacks enough detail to write testable acceptance criteria, STOP and ask the operator — never guess.
  • Two communication registers: messages to humans (chat report, notifications) = short, direct, plain language, no deep-tech jargon. Internal state files (spec.md, review.md, histories, working notes) = written for the AI of a later iteration: dense, precise, full paths/symbols/error strings — optimize for machine effectiveness, not human readability.

© getlago, AGPL-3.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 .agents/skills/loop-spec of getlago/lago-front.

Open the folder on GitHubat commit d4cb9fe

Compare with similar skills

Loop Spec 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.

Loop Spec compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Loop Spec this skillgetlago/lago-front163—~1.6kAutomated safety check: PassAGPL-3.0
Code Design Rationale Investigatorcursor/plugins10k9 repos~2.6kAutomated safety check: PassNone
Xiaohei Chinese Article Illustrationshelloianneo/ian-xiaohei-illustrations12k3 repos~470Automated safety check: WarnMIT
ComposioComposioHQ/composio30k1 repos~1.7kAutomated safety check: PassMIT
Debug SkillTypeCellOS/BlockNote10k—~1.8kAutomated safety check: PassCustom licence
Marketing PlanNexus-JPF/note-companion8705 repos~5.2kAutomated safety check: PassMIT

Similar skills

  • Official

    Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.

    10k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Xiaohei Chinese Article Illustrations

    helloianneo/ian-xiaohei-illustrations

    Plans and generates 16:9 hand-drawn illustrations for Chinese articles on a white background, with a recurring black character and a few red, orange and blue handwritten notes.

    12k GitHub starsUsed in 3 repos~470 tokens
    Media & CreativeAuto-check: warnings
  • Composio

    ComposioHQ/composio

    Route and complete Composio work across Composio For You and Composio Platform.

    30k GitHub starsUsed in 1 repo~1.7k tokens
    Productivity & AutomationAuto-check passed
  • Debug Skill

    TypeCellOS/BlockNote

    Instructions for navigating and debugging BlockNote in a browser.

    10k GitHub stars~1.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Marketing Plan

    Nexus-JPF/note-companion

    When the user needs a comprehensive marketing plan for a client, a company they advise, or their own product.

    870 GitHub starsUsed in 5 repos~5.2k tokens
    Marketing & SEOAuto-check passed
  • Docs Skill

    TypeCellOS/BlockNote

    Conventions and verification workflow for writing and restructuring the documentation site (docs/content).

    10k GitHub stars~1.9k tokensUpdated today
    Frontend & DesignAuto-check passed

More from getlago/lago-front

All 17 skills in this repo
  • Babysit

    getlago/lago-front

    A skill your agent uses when asked to babysit, monitor, shepherd, or keep working on a GitHub pull request until it is green, review-ready, approved, mergeable, or ready to merge.

    163 GitHub stars~5.2k tokensUpdated today
    Auto-check passed
  • Cve Doctor

    getlago/lago-front

    Triage a CVE / Dependabot alert in a JS/TS project and recommend the least-invasive fix.

    163 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Extract Section To Drawer

    getlago/lago-front

    Extract a Formik form section into a TanStack Form drawer with Zod validation, following the plan form migration pattern.

    163 GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Loop Build

    getlago/lago-front

    Phase 2 of the loop pipeline for lago-front. An agent skill from getlago/lago-front.

    163 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Loop Clean

    getlago/lago-front

    Cleanup phase of the loop pipeline for lago-front, for the worktree layout only.

    163 GitHub stars~816 tokensUpdated today
    Auto-check passed
  • Docker Expert

    getlago/lago-front

    You are an advanced Docker containerization expert with comprehensive, practical knowledge of container optimization, security hardening, multi-stage builds, orchestration patterns, and production…

    163 GitHub starsUsed in 10 repos~3.6k tokens
    Auto-check passed

Works with

Questions about Loop Spec

What does Loop Spec do?

Phase 1 of the loop pipeline for lago-front. An agent skill from getlago/lago-front. Loop Spec is an agent skill from getlago/lago-front. Phase 1 of the loop pipeline for lago-front.

When should I use Loop Spec?

Loop Spec fits situations like: user says /loop-spec <linear-url [notion-urls...]; asks to spec a ticket for the loop pipeline.

How do I install Loop Spec in Claude Code?

Run `npx skills add getlago/lago-front --skill loop-spec -a claude-code`. Or copy the skill folder (.agents/skills/loop-spec in getlago/lago-front) into .claude/skills/loop-spec in your project. Claude Code loads it when a task matches its description.

How do I install Loop Spec in Codex?

Run `npx skills add getlago/lago-front --skill loop-spec -a codex`. Or copy the skill folder (.agents/skills/loop-spec in getlago/lago-front) into .agents/skills/loop-spec in your project. Codex loads it when a task matches its description.

Can I use Loop Spec 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 getlago/lago-front --skill loop-spec -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/loop-spec, .gemini/skills/loop-spec, .github/skills/loop-spec and .opencode/skills/loop-spec in your project.

What does Loop Spec need to run?

Going by SKILL.md and its folder, Loop Spec needs the command-line tools its instructions call (pnpm).

Does Loop Spec access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Loop Spec safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Loop Spec use?

Loop Spec is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Loop Spec use?

About 1.6k tokens (SKILL.md is roughly 6.5k 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 Loop Spec?

Skills that share tags, products or a category with Loop Spec: Code Design Rationale Investigator (cursor/plugins, 10k stars), Xiaohei Chinese Article Illustrations (helloianneo/ian-xiaohei-illustrations, 12k stars), Composio (ComposioHQ/composio, 30k stars) and Debug Skill (TypeCellOS/BlockNote, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Loop Spec?

getlago (a GitHub organization) maintains it in getlago/lago-front, which has 163 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 8, 2026.

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