agentleFS
drafaeldrafael/coding-harness/skills/architect/SKILL.md

architect

Skill1 starsChanged 6 months agoMITView on GitHub

Produce an implementation-ready, caller-first structural design for a sufficiently understood engineering problem. Manual invocation only; use when the user explicitly asks to architect a change or define its types, signatures, data structures, and module boundaries. Use brainstorm for unresolved future behavior and explain-code for a neutral current-code walkthrough.

We split this skill into the rules it gives an agent

26 rules. 0 are common, 19 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 149 edited versions we read keep these.

  • 19

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run only after explicit invocation.

    line 14
  2. Distinctive:

    Keep tracked files unchanged unless the user authorized a persistent artifact or implementation.

    line 24
  3. Distinctive:

    Never reset, clean, overwrite, stage, or delete pre-existing work.

    line 25
  4. Distinctive:

    Remove only temporary resources created by this workflow.

    line 26
  5. Distinctive:

    Keep evidence local by default.

    line 27
  6. Distinctive:

    Do not reproduce credentials, tokens, private keys, cookies, sensitive personal data, or unrelated proprietary content.

    line 28
  7. Distinctive:

    Do not commit or push unless separately requested.

    line 29
  8. Distinctive:

    Keep the design in the response unless the user requests a destination.

    line 31
  9. Distinctive:

    When installed and loadable:

    line 35
  10. Very specific:

    use explain-code to establish current mechanics and flow.

    line 37
  11. Very specific:

    use clarify for expectation mismatches or historical rationale.

    line 38
  12. Very specific:

    use arena for credible, consequential structural alternatives.

    line 39
  13. Distinctive:

    use applicable project coding skills for language, framework, build, test, and implementation conventions.

    line 40
  14. Very specific:

    use technical-writing for a substantial persistent design artifact.

    line 41
  15. Very specific:

    use unslop for the final prose pass.

    line 42
  16. Distinctive:

    Write realistic caller usage before defining types.

    line 63
  17. Distinctive:

    Keep transport, storage, framework, and representation details behind their boundaries unless callers genuinely own them.

    line 70
  18. Distinctive:

    Prefer a small interface that hides meaningful policy and coordination.

    line 75
  19. Very specific:

    Use arena only when several credible whole shapes exist, an ownership decision is consequential, uncertainty makes the first shape risky, …

    line 79
  20. Very specific:

    When arena is unavailable but comparison is warranted, produce at least two structurally independent sketches from the same frame, compare …

    line 81
  21. Distinctive:

    When one shape is clearly supported, present it and explain why apparent alternatives do not fit.

    line 83
  22. Distinctive:

    After explicit implementation approval, follow repository instructions and load applicable project coding guidance when available.

    line 122
  23. Distinctive:

    Treat deviations as evidence.

    line 124
  24. Distinctive:

    Before returning a design or approved implementation, verify:

    line 138
  25. Distinctive:

    every important invariant and mutable state has an owner.

    line 142
  26. Distinctive:

    no speculative mechanism or unused extension point remains.

    line 145

“Common” is measured: kept by at least 6 in 10 of the 149 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

Architect

Turn an understood engineering problem into a structural design that an implementer can follow without rediscovering its boundaries.

Invocation and boundary

Run only after explicit invocation. Do not activate merely because a task is non-trivial.

Accept a problem whose intended behavior and important constraints are sufficiently understood. When consequential requirements, product behavior, ownership, or alternatives are still unresolved, use brainstorm if it is installed and loadable. Otherwise ask one focused question at a time and establish those decisions locally before continuing.

The default deliverable is a design, not production code. Begin implementation only when the original request clearly includes it or the user approves it after reviewing the design. A request for a persistent design artifact authorizes only that artifact, not implementation.

Preserve the repository and access boundary

Inspect local evidence before designing. When a repository is present, record its initial state before running commands that may generate files.

  • Keep tracked files unchanged unless the user authorized a persistent artifact or implementation.
  • Never reset, clean, overwrite, stage, or delete pre-existing work.
  • Remove only temporary resources created by this workflow.
  • Keep evidence local by default. Use remote sources or environments only when the user requested access and the privacy boundary permits it.
  • Do not reproduce credentials, tokens, private keys, cookies, sensitive personal data, or unrelated proprietary content. Use a redacted placeholder and report the exposure.
  • Do not commit or push unless separately requested.

Keep the design in the response unless the user requests a destination.

Compose with optional skills

When installed and loadable:

  • use explain-code to establish current mechanics and flow;
  • use clarify for expectation mismatches or historical rationale;
  • use arena for credible, consequential structural alternatives;
  • use applicable project coding skills for language, framework, build, test, and implementation conventions;
  • use technical-writing for a substantial persistent design artifact;
  • use unslop for the final prose pass.

These skills are optional. When one is unavailable, perform the smallest equivalent local investigation, comparison, or prose check here. Do not claim that an unavailable skill ran, repeat evidence already established, or require a named model, provider, tool, command, or agent harness.

Ground the system

Build the smallest accurate model of the systems the design will touch. Naming files is not grounding.

Trace relevant:

  • callers and entry points;
  • current ownership and module boundaries;
  • data and control flow;
  • state, lifecycle, concurrency, and cleanup;
  • configuration, persistence, and external contracts;
  • tests and documented compatibility constraints.

Distinguish observed mechanics, documented contracts, historical rationale, and unknowns. Treat existing structure as a constraint only when evidence establishes that it must remain. For genuinely greenfield work, state the available constraints and skip repository tracing that has no target.

Design from caller usage

Write realistic caller usage before defining types. Show what a caller imports or receives, what it supplies, what it invokes, and what returns or fails. Use two or three examples when materially different call patterns exist; do not invent consumers to fill a quota.

Derive the shape from that usage:

  1. Choose core data structures and trace every dominant lookup, update, iteration, and merge through them.
  2. Define the smallest public types and signatures that serve the callers.
  3. Assign each invariant and source of truth to one owning module.
  4. Keep transport, storage, framework, and representation details behind their boundaries unless callers genuinely own them.
  5. Make validation and error behavior explicit at trust and type boundaries.
  6. Address state ownership, concurrent writers, cancellation, idempotency, partial failure, persistence, compatibility, and cleanup only where the problem makes them relevant.
  7. Encode invariants structurally when the target language permits it; use runtime validation when types cannot establish them.

Prefer a small interface that hides meaningful policy and coordination. Do not replace a direct function with a service, framework, extension point, or generic protocol without multiple current consumers or an existing contract that requires it.

Explore proportionally

Use arena only when several credible whole shapes exist, an ownership decision is consequential, uncertainty makes the first shape risky, or the user explicitly requests it. Give every candidate the same grounding and require complete caller usage, data shape, interfaces, module ownership, and rationale.

When arena is unavailable but comparison is warranted, produce at least two structurally independent sketches from the same frame, compare them against explicit criteria, and disclose that sequential parent-only attempts have weaker independence. Do not let one sketch become an incremental edit of the other.

When one shape is clearly supported, present it and explain why apparent alternatives do not fit. Do not manufacture alternatives or invoke a multi-candidate workflow to satisfy a quota.

Pressure-test the shape

For non-trivial architecture, read references/design-review.md. Revise or reject a shape when evidence shows that it:

  • exposes more interface than the complexity it hides;
  • leaks internal representation or policy across modules;
  • scatters one invariant across execution stages;
  • adds pass-through layers without policy or adaptation;
  • mismatches dominant data access patterns;
  • duplicates sources of truth;
  • leaves shared state or lifecycle ownership unclear;
  • creates long coordination chains;
  • introduces speculative abstractions without current consumers.

These are diagnostic signals, not automatic failures. Preserve legitimate domain complexity, and keep a direct function when it is the clearest sufficient boundary.

Return the design

For a substantial result, read references/design-package.md. Adapt the package to the task and omit empty sections.

A useful design normally establishes:

  • the problem and evidence-backed constraints;
  • caller usage;
  • data and interface shape;
  • module ownership and end-to-end flow;
  • relevant invariants, validation, errors, state, and lifecycle behavior;
  • the synthesis decision when multiple candidates were compared;
  • accepted trade-offs and real rejected alternatives;
  • open questions and risks;
  • the smallest dependency-ordered implementation sequence;
  • the verification boundary for implementation.

Label pseudocode and unimplemented bodies clearly. Do not present a sketch as compiled or executed code. Keep genuine unknowns visible rather than filling them with a plausible design assumption.

Follow through after implementation approval

After explicit implementation approval, follow repository instructions and load applicable project coding guidance when available. Implement the smallest agreed slice, then compare the result with the design.

Treat deviations as evidence. For an isolated mismatch, determine whether a requirement was missed, the design was wrong, or the implementation is overreaching, then make the narrowest correction. Do not silently widen interfaces.

Re-ground and redesign only when repeated deviations share the same cause, for example:

  • recurring escape-hatch types, casts, or meaningless optional fields;
  • unrelated edge cases requiring the same special branch;
  • repeated ownership or synchronization workarounds;
  • callers repeatedly learning internal rules;
  • several implementation steps needing the same unplanned parameter or layer.

A hard case or one correction does not condemn the architecture. When the shape is disproven, remove the failed approach instead of preserving compatibility scaffolding for it, incorporate the implementation evidence, subtract unnecessary structure, and design again.

Final check

Before returning a design or approved implementation, verify:

  • real callers can use the proposed surface without learning hidden internals;
  • data structures support the dominant access patterns;
  • every important invariant and mutable state has an owner;
  • complexity is hidden where justified rather than moved into extra layers;
  • trade-offs, unknowns, and evidence limits are explicit;
  • no speculative mechanism or unused extension point remains;
  • persistence, repository, privacy, and implementation-approval boundaries were respected.

Download now (ZIP)

  • Other versions160 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 160

    1. agenticnotetaking/arscontexta★ 3.5ksame name
    2. backnotprop/pstack★ 3.3ksame name
    3. jsmastery-pro/skills★ 1.4ksame name
    4. SethGammon/Citadel★ 927same name
    5. moeru-ai/xsai★ 665same name
    6. DanMcInerney/architect-loop★ 626same name
    7. Hainrixz/the-architect★ 562same name
    8. Trevoke/org-gtd.el★ 485same name
    9. nagi-studio/skills★ 387same name
    10. YougLin-dev/Aha-Loop★ 181same name

    150 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use principle-explain-the-number, poteto-help and 10 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.
    • ianclearySkill

      principle-explain-the-number

      Apply before you trust, report, or act on a number you measured: a speedup, a regression, a throughput, a latency, or an eval result. Find what limits it, and rule out that it measured something other than the work you think.

      Also in 26 projects that use this

    • ianclearySkill

      poteto-help

      Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.

      Also in 14 projects that use this

    • bnemaSkill

      setup-pstack

      Configure which Pi models pstack uses per role. Detects available provider/model specs and writes pstack's user configuration. Use for /setup-pstack, "configure pstack models", or changing pstack model choices.

      Also in 26 projects that use this

    • Xia-AtaraxiaSkill

      make-bot-ui

      Builds a small web page whose buttons wake an agent over a webhook: a local server keeps the sender key server-side and POSTs JSON to a webhook-triggered routine, and the page is exposed on the existing Tailscale node. Use for \"make a bot UI\", \"a dashboard with buttons that trigger the agent\", \"wake the bot from a page\", handing a webhook sender key to the server without pasting it in chat, or putting that UI on the tailnet. Not for general frontend work - use principle-frontend; not for tailnet health or reachability - use tailscale.

      Also in 20 projects that use this

    • 3metaJunSkill

      ketchup-video

      Catch the user up like /ketchup, with a short subtitled video of slides for what happened and the waiting calls as text under it. Use for /ketchup-video.

      Also in 10 projects that use this

    • jaydubya818Skill

      principle-attack-the-premise

      Apply when repeated fixes fail and a shared assumption may be wrong.

      Also in 32 projects that use this

  • In this repository31 other files it gives its agents.

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.