跳到正文
cccskills
免费在 GitHub 公开

architect

Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in. Use for /architect, 'architect this', 'design this', or non-trivial work where jumping to code would lock in the wrong shape.

中文简介正在准备中。当前显示原文说明。

neohaskell/NeoHaskell星标 348(GitHub 348 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(5)

  • SKILL.md6.8 KB
  • agents/openai.yaml43 B
  • references/design-red-flags.md4.0 KB
  • references/rationale-template.md3.5 KB
  • references/runner-prompt.md4.3 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Architect

Sketch Haskell types, function signatures, service records, relevant typeclass or instance shapes, and module boundaries for NeoHaskell framework, language, and toolchain internals. State the semantic contract alongside the types, including evaluation or representation behavior when relevant. Mark incomplete bodies and logic explicitly in the sketch. Compare independent candidate perspectives, then fill in code against the chosen sketch within the caller's requested scope.

Start

Open a todolist with one entry per phase before starting.

  1. Ground
  2. Sketch
  3. Agree
  4. Implement
  5. Scrap

Phase A: Ground the problem

Build a real mental model of every system the new code touches. Run the how skill over the relevant subsystems. Naming a file isn't grounding. Produce the architectural explanation how prescribes. If the design redefines ownership or layering, also run the why skill on the existing shape so the rationale becomes a constraint, not a guess.

Use How's local codemap to locate relevant modules, signatures and service fields before reading their source. Its source index refreshes on lookup. Confirm evidence and coverage against the maintained implementation before making an architectural claim.

Skip Phase A only when the work is genuinely greenfield with no surrounding system to integrate.

Phase B: Sketch

Run the arena skill with the design-sketch task and the Phase A grounding artifacts. Pass references/runner-prompt.md as each runner's prompt.

Use the current environment's configured architecture runner roles through arena and its available delegation interface. Inherit supported runtime defaults when no role override is configured; report unsupported overrides rather than inventing fallback identifiers. Use only supported reasoning and speed settings. Centralized role configuration is managed separately; keep candidate investigations independent within the available delegation capacity.

Design it twice. Require at least two structurally distinct candidates before synthesis, even when the first looks sufficient. This is the exhaust-the-design-space principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape.

Screen every candidate against references/design-red-flags.md before synthesis. Apply Security by Construction and Design for Throughput to each candidate: identify relevant trust/authority boundaries, safe defaults and whole-flow costs. Carry assumptions, tradeoffs and required evidence into the rationale; keep the treatment proportionate to the affected path. Assume the next contributor is an agent that sees only the files it opened, copies the nearest example, and takes the shortest path that compiles. Prefer the design where a change that looks right from one file is right for the whole repo.

Compare viable candidates on interface depth. Prefer the design that hides more complexity behind a smaller, simpler public surface. A rich interface can keep call chains short by concentrating capability instead of scattering it across layers.

Arena returns one synthesized design package. Its synthesis decision fills the rationale's "Synthesis decision" section.

Phase C: Agree (opt-in)

Default for an implementation request: proceed directly to implementation with the synthesized design. No human checkpoint. For a request limited to design or a sketch, deliver the design package and stop at that requested scope.

Opt in to a checkpoint when the invoker explicitly asks: "/architect with checkpoint," "stop and show me before implementing," or similar. Then surface the synthesized design and pause for sign-off.

The synthesis can ship as its own commit either way, as the "scaffold first" mode of the foundational-thinking principle skill. Planned and scoped breakage during fill-in is fine, per the outcome-oriented-execution principle skill. For adversarial pressure on the design before implementing, run the interrogate skill on the synthesized sketch.

If the human pushes back on the shape (in a checkpoint or after the fact), treat that as Phase A evidence. Re-ground and re-run Phase B before writing more code.

Phase D: Implement against the sketch

Replace explicitly incomplete sketch bodies and pseudocode with Haskell implementations. Keep incomplete definitions confined to sketch artifacts or the declared scaffold phase; typechecking an incomplete definition does not prove its behavior. The synthesized sketch is the contract. Deviations from it are signal to surface, not friction to absorb silently. If a function needs a parameter the sketch didn't anticipate, ask whether the sketch was wrong, the requirement was missed, or the implementation is overreaching.

Phase E: Scrap when the architecture is wrong

If implementation keeps producing friction the sketch can't absorb, throw the sketch out. Don't bolt fixes onto a wrong design, per the redesign-from-first-principles and fix-root-causes principle skills.

The signal is a pattern, not single instances. Tells:

  • The same shape of workaround appearing repeatedly across unrelated code.
  • Multiple unrelated edge cases that all need special-case branches.
  • Types that need escape hatches such as unsafeCoerce, partial functions, or Maybe fields that callers must always unwrap to satisfy an unstated invariant.
  • Synchronization appearing across callers because the sketch missed the subsystem that owns the shared-state invariant or worker lifetime.
  • Callers having to know the abstraction's internal rules to use it.
  • Two or more independent Phase D deviations of the same shape across the implementation.

Use judgment. A few edge cases don't condemn an architecture. Some problems are legitimately complex. Complexity in the data is not complexity in the design.

When you scrap:

  1. Re-run the how skill over what's been built.
  2. Redesign as if the new constraints had been day-one assumptions, per redesign-from-first-principles.
  3. Subtract before adding, per the subtract-before-you-add principle skill. The new sketch should be smaller than the old one before it grows.
  4. Return to Phase B and re-run arena.

Outputs

The caller's usage is written first and the type sketch derived from it. One file with new types and signatures for small changes. Module map plus type definitions for larger work. The rationale ships alongside, shaped per references/rationale-template.md, including the usage sketch and the synthesis decision.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

arena

免费

Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it. Use for /arena, 'arena this', 'throw it in the arena', or when one attempt at a non-trivial artifact would lock in the wrong shape.

中文简介正在准备中。当前显示原文说明。

neohaskell/NeoHaskell3482026年10月26日 更新

babysit

免费

Inspect or supervise a PR or stack through review and CI to merge-ready, using current GitHub evidence and the requested mode.

中文简介正在准备中。当前显示原文说明。

neohaskell/NeoHaskell3482026年10月26日 更新

Vet a perf measurement (limiter, tuning, limits, errors, repeatability, relevance, and whether the work happened) before you report or act on it. Use when you benchmark or report a measured speedup or regression, including complete framework flows and compilation of projects that consume the framework.

中文简介正在准备中。当前显示原文说明。

neohaskell/NeoHaskell3482026年10月26日 更新

bro

免费

Restate the last message in plain human language, with no jargon.

中文简介正在准备中。当前显示原文说明。

neohaskell/NeoHaskell3482026年10月26日 更新

Build or adapt a local harness to drive, inspect, and profile an interactive CLI or TUI without external services. Use for CLI UX checks, startup regressions, memory leaks, hangs, prompt flows, or terminal demos.

中文简介正在准备中。当前显示原文说明。

neohaskell/NeoHaskell3482026年10月26日 更新

Build or adapt a local browser/CDP harness to drive and inspect a web, IDE, or Electron UI. Use for local UI verification, screenshots, accessibility snapshots, perf profiles, visual diffs, or reproducing UI bugs.

中文简介正在准备中。当前显示原文说明。

neohaskell/NeoHaskell3482026年10月26日 更新

查看 neohaskell 的全部技能

报告此技能的问题