@noir-ai/skills 1.9.3 → 1.9.4-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/builtin/noir-backend/SKILL.md +32 -4
  2. package/builtin/noir-backend/references/backend-patterns.md +55 -0
  3. package/builtin/noir-brainstorming/SKILL.md +49 -0
  4. package/builtin/noir-checkpoint/SKILL.md +30 -12
  5. package/builtin/noir-context/SKILL.md +29 -10
  6. package/builtin/noir-doctor/SKILL.md +23 -4
  7. package/builtin/noir-executing-plans/SKILL.md +59 -0
  8. package/builtin/noir-exploring/SKILL.md +37 -0
  9. package/builtin/noir-frontend/SKILL.md +32 -4
  10. package/builtin/noir-frontend/references/ui-patterns.md +48 -0
  11. package/builtin/noir-parallel/SKILL.md +25 -35
  12. package/builtin/noir-planning/SKILL.md +46 -0
  13. package/builtin/noir-prd/SKILL.md +38 -27
  14. package/builtin/noir-readme/SKILL.md +25 -4
  15. package/builtin/noir-recall/SKILL.md +31 -12
  16. package/builtin/noir-remember/SKILL.md +31 -17
  17. package/builtin/noir-rules/SKILL.md +28 -27
  18. package/builtin/noir-security/SKILL.md +33 -4
  19. package/builtin/noir-security/references/security-checklist.md +49 -0
  20. package/builtin/noir-shipping/SKILL.md +34 -0
  21. package/builtin/noir-spec/SKILL.md +48 -14
  22. package/builtin/noir-spec/references/spec-template.md +43 -0
  23. package/builtin/noir-subagent/SKILL.md +29 -30
  24. package/builtin/noir-subagent/references/dispatch-guide.md +50 -0
  25. package/builtin/noir-sync/SKILL.md +39 -12
  26. package/builtin/noir-systematic-debugging/SKILL.md +71 -0
  27. package/builtin/noir-systematic-debugging/references/tracing.md +51 -0
  28. package/builtin/noir-test-driven-development/SKILL.md +73 -0
  29. package/builtin/noir-test-driven-development/references/tdd-worked-example.md +65 -0
  30. package/builtin/noir-verifying/SKILL.md +40 -0
  31. package/builtin/noir-verifying/references/verification-checklist.md +29 -0
  32. package/builtin/noir-worktree/SKILL.md +23 -4
  33. package/builtin/noir-wrap/SKILL.md +29 -13
  34. package/builtin/noir-writing-skills/SKILL.md +42 -0
  35. package/dist/index.d.ts +159 -9
  36. package/dist/index.js +240 -7
  37. package/dist/index.js.map +1 -1
  38. package/evals/noir-systematic-debugging/evals.json +25 -0
  39. package/evals/noir-test-driven-development/evals.json +25 -0
  40. package/integrations/noir-clickup/SKILL.md +319 -71
  41. package/package.json +3 -2
  42. package/builtin/noir-brainstorm/SKILL.md +0 -17
  43. package/builtin/noir-branch/SKILL.md +0 -12
  44. package/builtin/noir-clarify/SKILL.md +0 -17
  45. package/builtin/noir-commit/SKILL.md +0 -12
  46. package/builtin/noir-debug/SKILL.md +0 -38
  47. package/builtin/noir-document/SKILL.md +0 -17
  48. package/builtin/noir-execute/SKILL.md +0 -17
  49. package/builtin/noir-explore/SKILL.md +0 -16
  50. package/builtin/noir-intake/SKILL.md +0 -17
  51. package/builtin/noir-plan/SKILL.md +0 -20
  52. package/builtin/noir-pr/SKILL.md +0 -12
  53. package/builtin/noir-review/SKILL.md +0 -28
  54. package/builtin/noir-skill-author/SKILL.md +0 -12
  55. package/builtin/noir-tdd/SKILL.md +0 -49
  56. package/builtin/noir-test/SKILL.md +0 -12
  57. package/builtin/noir-verify/SKILL.md +0 -17
@@ -1,17 +0,0 @@
1
- ---
2
- name: noir-execute
3
- description: Use when executing a written implementation plan, task by task — driving the SDD execute phase.
4
- ---
5
-
6
- Execute an approved implementation plan one task at a time, with a review gate between tasks. The plan is the contract; this skill drives it.
7
-
8
- ## Procedure
9
- 1. **Load the plan.** Read the plan file under `.noir/plans/`. If none, stop and point to `noir-plan`.
10
- 2. **One task at a time.** Work the tasks in order. For each task: read its files/interfaces, write the failing test, implement minimally, run the test, commit when green.
11
- 3. **Review between tasks.** After each task, run typecheck + lint + tests and review the diff before moving on. The SDD engine records the execute-phase checkpoint observably (`noir.checkpoint`).
12
- 4. **Stay in scope.** Commit per logical change with a conventional-commit message; never bundle unrelated changes. If you discover missing scope, return to `noir-clarify` / `noir-plan` rather than improvising.
13
- 5. **Hand off to verify.** When all tasks are done, point to `noir-verify` before claiming completion.
14
-
15
- ## Notes
16
- - Discipline is observable, not rhetorical: the SDD engine's gates record that each task was reviewed. This skill is the playbook.
17
- - On doubt mid-execution, return to the plan or clarify — do not guess.
@@ -1,16 +0,0 @@
1
- ---
2
- name: noir-explore
3
- description: Use when answering means sweeping many files, directories, or naming conventions — to fan out read-only search and return the conclusion, not the file dumps.
4
- ---
5
-
6
- Locate code across the codebase without reading every file into context. Prefer a read-only search fan-out that returns locations and a short conclusion; read whole files only for the few you actually need to edit.
7
-
8
- ## Procedure
9
- 1. **Frame the question.** State precisely what you are looking for — a symbol, a pattern, a naming convention, or where something is defined. A fuzzy query yields a fuzzy sweep.
10
- 2. **Fan out.** Use `grep` / `glob`, or dispatch a read-only search subagent across the likely locations. State the search breadth up front (medium for a focused module, very thorough for cross-package naming or convention questions).
11
- 3. **Return the conclusion.** Summarize where things live with `file:line` references and the one-line gist of each match — not the raw matched lines. Call out conventions discovered (e.g. "errors are thrown in `src/errors/`, not at call sites").
12
- 4. **Read targeted.** Open only the specific files or line ranges you need to act on. Everything else stays a citation.
13
-
14
- ## Notes
15
- - Keep raw search output out of context where possible — process it in a sandbox or subagent and surface only the derived answer. Large `grep` dumps cost context for the rest of the session.
16
- - This skill locates code — it does not review, audit, or refactor it. Hand to `noir-review` for judgment on what you found.
@@ -1,17 +0,0 @@
1
- ---
2
- name: noir-intake
3
- description: Use when starting a new feature or task from a raw idea, ticket, or issue — before any design or code.
4
- ---
5
-
6
- Capture a raw request as a grounded task stub before any design or implementation. The job here is to record what is actually known and flag what is not — not to solve, design, or paraphrase ambiguity away.
7
-
8
- ## Procedure
9
- 1. **Capture the raw input.** Take the idea, ticket, or issue text as-is. Quote the originating words; do not silently summarize. If the source is a paste, keep the paste.
10
- 2. **Ground in project context.** Read `CLAUDE.md` / `AGENTS.md`, recent commits, and any neighbor spec under `.noir/specs/`. Note which existing module or package this request most likely touches — as a hypothesis, not a decision.
11
- 3. **Draft the task stub.** Write `.noir/tasks/<id>.md` with: problem statement (in the user's words), rough acceptance criteria (observable, not vague), likely touch points, and an explicit *Open questions* list. Every blank becomes an open question — never an assumption.
12
- 4. **Start the SDD task.** Call `noir.workflow_status` to confirm the task is at the `intake` phase. The engine records the intake checkpoint observably via `noir.checkpoint`; you do not need to assert it.
13
- 5. **Hand off.** Point to `noir-clarify` to resolve the open questions. Do not design, plan, or code in this phase.
14
-
15
- ## Notes
16
- - Intake is a recording step, not a solution step. If you cannot tell whether something is a requirement, write it as an open question.
17
- - Do not invent acceptance criteria to fill blanks — surface them. `noir-clarify` exists to close them.
@@ -1,20 +0,0 @@
1
- ---
2
- name: noir-plan
3
- description: Use when you have an approved spec and need a step-by-step implementation plan — before touching code.
4
- ---
5
-
6
- Write a step-by-step implementation plan from the approved spec, sized so each task is one reviewable commit. The plan is what `noir-execute` drives; make it complete enough that execution needs no new design decisions.
7
-
8
- ## Procedure
9
- 1. **Read the spec.** Open the approved spec under `.noir/specs/`. Every requirement, acceptance criterion, and non-goal must map to at least one task — if a requirement has no task, add one before you consider the plan done.
10
- 2. **Lay out tasks in execution order.** For each task, write:
11
- - **Files** — exact paths to create and modify (with line ranges where relevant).
12
- - **Interfaces** — what the task consumes from earlier tasks (exact signatures) and what it produces for later ones (exact names and types). This block is how a neighbor task learns the contract.
13
- - **Test** — the failing test that proves the task, and the command that runs it.
14
- 3. **Right-size each task.** A task is one reviewable commit. Split anything that bundles unrelated changes; merge anything that is just a sub-step of a single change. Prefer bite-sized tasks that can fail and pass independently.
15
- 4. **Self-review the plan.** Check spec coverage (point to a task per requirement), placeholder scan (no TBD / TODO / vague "implement the thing"), and type consistency across tasks (a function called `clearLayers()` in Task 3 must still be `clearLayers()` in Task 7). Fix inline.
16
- 5. **Write and hand off.** Save to `.noir/plans/<topic>.md`. The SDD engine records the plan checkpoint observably via `noir.checkpoint`. Point to `noir-execute`.
17
-
18
- ## Notes
19
- - Assume the implementer is a skilled developer with zero context for this codebase. Document the paths, names, and test commands explicitly — no placeholders, no "you know what I mean".
20
- - If you cannot complete a task without a new design decision, the spec is incomplete — route back to `noir-spec` rather than deciding in the plan.
@@ -1,12 +0,0 @@
1
- ---
2
- name: noir-pr
3
- description: Use when committing, pushing, and opening a pull request in one flow.
4
- ---
5
-
6
- # noir-pr
7
-
8
- > **Stub:** this skill ships as a valid, loadable placeholder in S5; its full playbook is deepened in a later slice.
9
-
10
- **When to use:** the work is commit-ready and you want to push it and open a PR end-to-end.
11
-
12
- **For now:** confirm the commit is sound, confirm the push target with the user, push the branch, then open a PR with `gh pr create` — title and body describing what changed and why.
@@ -1,28 +0,0 @@
1
- ---
2
- name: noir-review
3
- description: Use when completing a task or before merging — to verify the work meets its requirements.
4
- ---
5
-
6
- Run a real review on completed work before claiming it done. This skill covers both halves: requesting a review with precisely crafted context, and receiving review feedback with technical rigor rather than performative agreement. The reviewer gets the work product, never your session's reasoning history.
7
-
8
- ## Procedure
9
-
10
- ### Requesting a review
11
- 1. **Scope the diff.** Capture `BASE_SHA` (the commit the work started from — never `HEAD~1`, which silently truncates a multi-commit task) and `HEAD_SHA`. Write a one-line description of what was built and a pointer to the plan or requirements it must satisfy.
12
- 2. **Dispatch a reviewer with crafted context, not session history.** Hand the reviewer: the description, the plan-or-requirements pointer, the BASE/HEAD shas, and the diff as a file (e.g. `git diff <BASE> <HEAD> -U10 > .noir/reviews/<task>-diff.patch`). A fresh reviewer seeing only the work product stays focused and preserves your context for continued work.
13
- 3. **Triage findings by severity.** Fix Critical issues immediately, fix Important issues before moving on, and record Minor issues for the final whole-branch pass. Do not batch them all into one fix run.
14
- 4. **Push back when the reviewer is wrong.** If a finding is technically incorrect for this codebase, lacks context, or violates an accepted decision, respond with technical reasoning — working tests, code that proves the existing behavior, or the spec line that mandates the current shape. Do not implement a suggestion just because a reviewer raised it.
15
-
16
- ### Receiving feedback
17
- 5. **Read, then verify — do not react.** Restate the requirement in your own words (or ask for clarification) before implementing. Check each item against the codebase: is it technically correct here, does it break existing behavior, does it conflict with a prior decision?
18
- 6. **Clarify unclear items as a batch.** If part of a multi-item review is unclear, stop and ask about every unclear item before implementing any of them — items are often related, and partial understanding produces wrong implementation.
19
- 7. **YAGNI-check "implement it properly" suggestions.** Before adding a suggested abstraction or endpoint, grep the codebase for actual usage. If nothing calls it, propose removal before proposing the proper version.
20
- 8. **Acknowledge correct feedback quietly.** State the fix ("Fixed: extracted the magic number to `PROGRESS_INTERVAL`"). No performative agreement, no thanks — the code itself is the acknowledgment.
21
-
22
- ### Close the loop
23
- 9. **Record the review.** Capture the verdict, the findings acted on, and any deferred Minor items via `noir.checkpoint` (the SDD verify gate). For the final whole-branch review, point `MERGE_BASE = git merge-base main HEAD` so the reviewer sees the entire branch.
24
-
25
- ## Notes
26
- - External feedback is a suggestion to evaluate, not an order to follow. Verify, question, then implement.
27
- - The reviewer and the implementer both report to the work's requirements. If a suggestion violates the spec or adds unused surface area, the answer is evidence-based pushback, not compliance.
28
- - Discipline is observable, not rhetorical: the SDD engine records that the verify gate ran, with the diff and verdict attached.
@@ -1,12 +0,0 @@
1
- ---
2
- name: noir-skill-author
3
- description: Use when creating new skills or editing existing ones — TDD for process docs.
4
- ---
5
-
6
- # noir-skill-author
7
-
8
- > **Stub:** this skill ships as a valid, loadable placeholder in S5; its full playbook is deepened in a later slice.
9
-
10
- **When to use:** you are authoring or revising a skill and want it loadable, valid, and genuinely useful when invoked.
11
-
12
- **For now:** frontmatter is `name: noir-<kebab>` plus a real WHEN `description`, a short body that tells the model when and how to act, and a reference file only if the skill needs one — validate before shipping.
@@ -1,49 +0,0 @@
1
- ---
2
- name: noir-tdd
3
- description: Use when implementing any feature or bugfix — to write the failing test before the implementation.
4
- ---
5
-
6
- Write the test first, watch it fail for the right reason, then write the minimal code that makes it pass. The cycle is red → green → refactor, in that order. The proof that a test actually tests something is that you saw it fail before the feature existed.
7
-
8
- ## Procedure
9
-
10
- ### RED — write one failing test
11
- - One behavior per test. If the name contains "and", split it.
12
- - A clear name that describes behavior (`retries failed operations 3 times`), not an index (`test1`).
13
- - Real code paths, not mocks of the code under test — mock only external boundaries you do not own.
14
- - Test the public behavior, not the implementation. A test that asserts on internal call shape breaks on every refactor.
15
-
16
- ### Verify RED — watch it fail
17
- Run the test before writing any implementation. Confirm:
18
- - it fails (does not error — a syntax or import error is not a red);
19
- - the failure message is the one you expected;
20
- - it fails because the feature is missing, not because of a typo in the test.
21
-
22
- A test that passes immediately is testing existing behavior. Fix the test, not the cycle.
23
-
24
- ### GREEN — write the minimal code
25
- Write the simplest code that turns the test green. No speculative options object, no "while I'm here" cleanup, no extra branches the test does not exercise. YAGNI is the rule in this step — the next test will ask for the next feature.
26
-
27
- ### Verify GREEN — watch it pass
28
- Run the full suite, not just the new test:
29
- - the new test passes;
30
- - no other test regressed;
31
- - the output is pristine — no warnings, no deprecation notices, no swallowed errors.
32
-
33
- If another test broke, the implementation is not done. Fix it now, do not commit and move on.
34
-
35
- ### REFACTOR — clean up, stay green
36
- Only after green: remove duplication, improve names, extract helpers. Run the suite after each refactor step. No new behavior lands during refactor — that requires a new RED.
37
-
38
- ### Repeat
39
- Pick the next behavior, write its failing test, cycle again.
40
-
41
- ## Why order matters
42
- Tests written after the implementation pass immediately, and a passing test proves nothing — it might test the wrong thing, it might assert on the implementation rather than the requirement, and you never saw it catch a bug. Test-first forces edge-case discovery before the implementation makes the edge case look easy.
43
-
44
- A bug found in the wild is treated the same way: write the failing test that reproduces it, watch it fail, fix at the root, watch it pass. The test stays in the suite as the regression guard.
45
-
46
- ## Notes
47
- - Discipline is observable, not rhetorical: the SDD engine records the execute-phase gate, and a regression test counts only after a red→green cycle was observed — a test that passed once is not evidence of a fix.
48
- - If the test is hard to write, the design is hard to use. Listen to the test before fighting it; the friction usually names a real coupling problem.
49
- - When you genuinely must explore an API before designing it, throw the exploration away and start the implementation from a fresh failing test. "Keep it as reference" is how tests-after slips in.
@@ -1,12 +0,0 @@
1
- ---
2
- name: noir-test
3
- description: Use when writing tests — for test design, coverage, and edge cases (not just running them).
4
- ---
5
-
6
- # noir-test
7
-
8
- > **Stub:** this skill ships as a valid, loadable placeholder in S5; its full playbook is deepened in a later slice.
9
-
10
- **When to use:** you are writing tests and want them to actually catch bugs — design and coverage, not just running a suite.
11
-
12
- **For now:** name each test for a behavior, cover the happy path plus the null/empty/boundary/error cases, and assert on observable outcomes rather than internals.
@@ -1,17 +0,0 @@
1
- ---
2
- name: noir-verify
3
- description: Use when about to claim work is complete or fixed — to run verification and gather evidence before asserting success.
4
- ---
5
-
6
- Run the commands that prove the claim, read their output, and report the actual status with evidence. No completion or fix claim is made until fresh output backs it.
7
-
8
- ## Procedure
9
- 1. **Name the claim and its proof.** For each thing you are about to assert ("tests pass", "lint clean", "build succeeds", "bug fixed", "requirements met"), name the exact command that would prove it. A claim with no proof command is not yet a claim.
10
- 2. **Run each command fresh.** Full invocation in this turn — not a previous run, not a cached result, not a partial check. Capture stdout, exit code, and failure counts.
11
- 3. **Read the output before asserting.** If the output confirms the claim, state the claim with the evidence. If it contradicts the claim, state the actual status with evidence and stop — do not soften, do not promise a follow-up.
12
- 4. **Refuse common substitutes for evidence.** "Should work now", "I'm confident", "the linter passed so the build is fine", "the agent reported success", and "partial check is enough" are not evidence. Partial output proves nothing about the whole.
13
- 5. **Record and route.** Capture the verification result via `noir.checkpoint` (the SDD engine's verify gate). Only then point to `noir-document`.
14
-
15
- ## Notes
16
- - The rule is procedural, not rhetorical: name the proof, run it, read it, then claim. The engine records that the verify gate ran with output attached.
17
- - A regression test counts only after a red→green cycle is observed. A test that passes once is not evidence of a fix.