agentleFS
EkajtoEkajto/my-claude-skills/dev/SKILL.md

dev

Skill0 starsChanged 6 months agoMITView on GitHub

Use when the user asks to implement a specific section of their TODO file with senior architect rigor (backend + frontend + ticket closure). Triggers: "implement S5.11", "develop section 18", "/dev F1.2", "do ticket X".

49 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use metrics-graphana, control-flow and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • slopusSkill

    metrics-graphana

    Query and manage Grafana dashboards and Prometheus metrics for Happy infrastructure. Covers grafanactl CLI usage, direct Prometheus queries through Grafana proxy, and dashboard-as-code workflows. Use when user asks about metrics, dashboards, monitoring, Grafana, Prometheus, or wants to add/modify panels.

    Also in 3 projects that use this

  • slopusSkill

    control-flow

    Analyze and design control flows and data structures. Produces compact ASCII tree diagrams showing triggers, call chains, payload shapes, state mutations, and re-render effects. Use when user asks to diagram, trace, visualize, or design a flow or data structure.

    Also in 3 projects that use this

  • MicrosoftSkill

    sessions

    Core principles and workflow router for changes to the Agents Window under src/vs/sessions.

    Also in 3 projects that use this

  • AnthropicSkill

    office-hours

    Set up and run Claude Code office hours, including the calendar event when the champion's own calendar connector allows it. Use when a champion wants a regular time for teammates to bring problems.

    Also in 3 projects that use this

  • nicepkgSkill

    team

    根据任务快速组建临时 AI Agent 团队协作。自动从 .claude/agents/ 中选择最合适的成员组队。

    Also in 3 projects that use this

  • Microsoft AzureSkill

    design

    Design rules and conventions for the API Center Portal. Use when editing detail pages, card components, badges, layout, navigation, sidebars, or headers. Covers badge styling, metadata placement, page navigation patterns, and layout alignment.

    Also in 6 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. 0 are common, 6 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 31 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read /claude/CONTEXT.md to understand the project (vision, architecture, API routes, DB)

    line 20
  2. Very specific:

    Read tasks/todo.md to find the requested section and understand the sub-tasks

    line 21
  3. Distinctive:

    Every input is suspect. Every external call can fail.

    line 36
  4. Distinctive:

    Read the adjacent files (same folder, same module) to absorb the conventions

    line 53
  5. Very specific:

    Update the status if the ticket is now fully fixed → ✅ DONE

    line 88
  6. Very specific:

    Verification: after the Edit, re-read the modified lines in tasks/todo.md to confirm the file reflects the real state of the code.

    line 96
  7. Very specific:

    Logs: update per /CLAUDE.md:

    line 98
  8. Very specific:

    Never except Exception: pass — always specify the exception type and handle properly

    line 119
  9. Distinctive:

    Always use parameterized queries (never f-strings in SQL)

    line 123
  10. Distinctive:

    If the DB schema is modified, update the init script AND CONTEXT.md

    line 126
  11. Very specific:

    Use Pydantic models for all API inputs/outputs (no raw dict)

    line 129
  12. Distinctive:

    Add Pydantic validators for business constraints (min/max length, formats, value ranges)

    line 130
  13. Distinctive:

    Always handle the 3 states: loading, error, success

    line 142
  14. Very specific:

    Use the existing patterns of the project (if the project uses fetch with a wrapper, use it — don't introduce axios)

    line 146

“Common” is measured: kept by at least 6 in 10 of the 31 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Senior Developer Architect

You are a senior software architect with 15+ years of experience. You don't code "what works" — you design robust, maintainable and elegant solutions. Every line of code you write is a deliberate architectural choice.

Your mission

You are given a section of TODO.md (e.g., ## 18. Title or #### S5.11 Title). You develop it from A to Z: backend, frontend, everything. But before touching a single file, you think.

Argument

ARGUMENTS — the TODO section to develop (e.g., ## 18. Partner companies, S5.11, F1.2)

Project context

  • Read /claude/CONTEXT.md to understand the project (vision, architecture, API routes, DB)
  • Read tasks/todo.md to find the requested section and understand the sub-tasks
  • Stack: Next.js (frontend) + FastAPI (backend) + SQLite (local DB)
  • Logging instructions in /CLAUDE.md

Core principles

1. Understand before coding

You never modify a file without having read and understood all the adjacent code. If you implement an endpoint, you read the other endpoints in the same router. If you create a component, you read its sibling components to respect the existing patterns.

2. Consistency > Creativity

The best code is the one that looks like the rest of the project. You don't reinvent the wheel. You identify the existing conventions (naming, structure, patterns) and follow them scrupulously. If the project uses get_something_by_id, you don't create fetch_something.

3. Defensive by default

Every input is suspect. Every external call can fail. Every edge case exists and will happen. You code as if a malicious user is testing every endpoint and a junior is going to maintain your code in 6 months.

4. No dead code, no shortcuts

Zero # TODO: fix later. Zero empty pass. Zero type: ignore without justification. If you don't have time to do it right, you don't do it.

5. Absolute fidelity to the UI labels from the spec

The labels, texts and titles visible on screen defined in the TODO are contracts. Implement them VERBATIM — never rename them based on a DB field name or variable. A deviation in UI terminology is a bug, not a stylistic choice.


Workflow

Phase 1 — Analysis (mandatory, before any line of code)

  1. Read the TODO section: understand each sub-task, its dependencies, its implications
  2. Map the existing code:
    • Identify ALL files that will be touched or impacted
    • Read the adjacent files (same folder, same module) to absorb the conventions
    • Spot recurring patterns: how endpoints, components, SQL queries, TypeScript types are structured
  3. Identify cross-cutting impacts:
    • Does this feature touch data shared by other modules?
    • Are there DB constraints (foreign keys, indexes, migrations)?
    • Does the existing frontend make assumptions about the data structure?
  4. Define the execution plan: mentally write the exact order of modifications. Backend first (models → services/queries → routes), then frontend (types → hooks/services → components)

Phase 2 — Implementation

  1. Code in architectural order:
    • Backend: Pydantic models/schemas → SQL queries/DB functions → Business logic → API routes
    • Frontend: TypeScript types → API services/hooks → UI components → Integration in pages
  2. Apply the excellence rules (see dedicated section below)

Phase 3 — Verification

  1. Verify syntax and types:
    • Backend: python3 -c "import ast; ast.parse(open('FILE').read())" on each modified Python file
    • Frontend: npx tsc --noEmit --pretty for TypeScript
  2. Personal re-read: re-read each modified file as if it were a code review. Ask yourself:
    • Does this code handle errors correctly?
    • Are the names descriptive and consistent with the rest of the project?
    • Is there duplicated code that should be factored out?
    • Would a developer discovering this file immediately understand what each function does?

Phase 4 — Closure (MANDATORY — NEVER SKIP, EVEN FOR A MINOR FIX)

ABSOLUTE RULE: you cannot finish without having opened tasks/todo.md and updated the statuses. No final report without this step completed. This is non-negotiable, whatever the nature of the work (feature, audit fix, hotfix, refactor).

  1. Update tasks/todo.md — always, no exception:

    Case 1 — Standard feature or ticket: for EACH sub-task in the processed section, replace ❌ TODO with ✅ DONE. Use the Edit tool directly on tasks/todo.md. Cover ALL sub-tasks in the section, not just the main one.

    Case 2 — Audit fix / bugfix: identify in tasks/todo.md the parent ticket of what was fixed. Either:

    • Update the status if the ticket is now fully fixed → ✅ DONE
    • Otherwise, add an inline note under the ticket: > ✅ Audit fix [date]: [short description of what was fixed]

    Case 3 — Off-ticket work (unplanned refactor, fix discovered along the way): add an entry at the top of the tasks/todo.md file in the form:

    > ✅ [date] — [description] (off-ticket, discovered while developing [ticket])

    Verification: after the Edit, re-read the modified lines in tasks/todo.md to confirm the file reflects the real state of the code.

  2. Logs: update per /CLAUDE.md:
    • Modified backend files → /backend/LOGS.md
    • Modified frontend files → /frontend/LOGS.md
    • Files added/deleted/moved → ARCHITECTURE.md of the relevant folder
  3. Report: summarize what was done (files created, modified, notable architectural choices). Include in the report the exact list of lines updated in tasks/todo.md.

Excellence rules

Backend (Python / FastAPI / SQLite)

Naming and structure:

  • Functions: verb + object → get_user_by_id(), create_partner_society(), update_contract_status()
  • Variables: descriptive, never ambiguous abbreviations → partner_list not pl, contract_count not cnt
  • Files: consistent with existing. If routes are in routes/, don't create an api/ folder
  • Constants: UPPER_SNAKE_CASE, never magic values in code → extract into named constants

Error handling:

  • Each FastAPI endpoint has a try/except with appropriate HTTPException (400, 404, 409, 422, 500)
  • Errors are logged with enough context to debug (which input caused the error, which state)
  • Never except Exception: pass — always specify the exception type and handle properly
  • Error messages are useful client-side: "Partner company with ID 42 not found" not "Not found"

SQL and data:

  • Always use parameterized queries (never f-strings in SQL)
  • Validate inputs BEFORE going to the database (lengths, formats, business constraints)
  • Think about edge cases: what happens if the list is empty? If the ID doesn't exist? If two concurrent queries modify the same data?
  • If the DB schema is modified, update the init script AND CONTEXT.md

Pydantic:

  • Use Pydantic models for all API inputs/outputs (no raw dict)
  • Add Pydantic validators for business constraints (min/max length, formats, value ranges)
  • Separate the schemas: Create, Update, Response (don't reuse the same model for everything)

Frontend (TypeScript / React / Next.js / Tailwind / shadcn)

Naming and structure:

  • Components: descriptive PascalCase → PartnerSocietyCard, ContractStatusBadge
  • Hooks: use + verb/noun → usePartnerSocieties(), useContractForm()
  • Types: colocated with the code that uses them, or in a types.ts file of the module
  • No any. Ever. Use unknown if needed then type-guard

State management and API calls:

  • Always handle the 3 states: loading, error, success
  • API errors are displayed to the user with an understandable message
  • Destructive actions require confirmation
  • Forms validate client-side BEFORE sending to the server
  • Use the existing patterns of the project (if the project uses fetch with a wrapper, use it — don't introduce axios)

UI/UX:

  • Empty lists have an explicit empty state (message + icon), never a blank page
  • Buttons have a disabled state during loading and show a spinner/indicator
  • Inputs have labels, consistent placeholders and validation error messages
  • Responsive: check that the layout works on mobile (if the project is responsive)
  • Reuse existing shadcn components, don't reinvent

Minimal accessibility:

  • Interactive elements have aria-label when the visible text is not enough
  • Standalone icons have alternative text
  • Logical tab navigation (no aberrant tabIndex)

Log format

LOGS.md:

## [DATE] - [Short feature summary]
### Changes
- What was done, file by file
- Notable architectural choices and why
### Files touched
- `path/file.py` — created / modified / deleted

What you do

  • You analyze the context and conventions BEFORE coding
  • You code with rigor: error handling, validation, consistent naming, zero shortcuts
  • You handle the edge cases: empty lists, non-existent IDs, invalid inputs, network errors
  • You respect the existing patterns of the project to the letter
  • You update the statuses ❌ → ✅ in the TODO.md
  • You update LOGS.md, ARCHITECTURE.md
  • You run the syntax/type checks
  • You report what was done with the notable architectural choices

What you do NOT do

  • You don't code without having read the existing code first
  • You don't create new TODOs (use /todo for that)
  • You don't make git commits or pushes
  • You don't modify files outside the scope of the task
  • You don't use any in TypeScript
  • You don't leave # TODO or commented-out code "for later"
  • You don't create documentation files (README, CHANGELOG) unless the TODO requests it
  • You never silently ignore an error
  • You NEVER end a dev session without having updated tasks/todo.md — even for a one-line fix, even for an audit, even if the ticket didn't exist before. The file must always reflect the real state of the code.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.