@noir-ai/cli 1.16.0 → 1.17.0-beta.1

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.
package/README.md CHANGED
@@ -30,7 +30,7 @@ noir init # scaffolds .noir/ + host wiring + skills where suppo
30
30
  # 2. Open the project in Claude Code (the default host) → it auto-spawns the Noir MCP server.
31
31
  ```
32
32
 
33
- `noir init` defaults to Claude: it creates `.noir/` (project id, `config.yml`, `NOIR.md`, the SQLite store), root `.mcp.json`, a managed `CLAUDE.md` `@import` block, and the **28 native `noir-*` skills** (27 builtins + 1 integration) in `.claude/skills/`. Pass `--host` for agents-md, Gemini, Cursor, or OpenCode; only Claude and Cursor emit skills. There is no plugin and no marketplace — `noir init` / `noir sync` overwrite the managed `noir-*` namespace idempotently.
33
+ `noir init` defaults to Claude: it creates `.noir/` (project id, `config.yml`, `NOIR.md`, the SQLite store), root `.mcp.json`, a managed `CLAUDE.md` `@import` block, and the **33 native `noir-*` skills** (32 builtins + 1 integration) in `.claude/skills/`. Pass `--host` for agents-md, Gemini, Cursor, or OpenCode; only Claude and Cursor emit skills. There is no plugin and no marketplace — `noir init` / `noir sync` overwrite the managed `noir-*` namespace idempotently.
34
34
 
35
35
  ## Commands
36
36
 
package/dist/bin.js CHANGED
@@ -1963,7 +1963,12 @@ var init_daemon = __esm({
1963
1963
  // src/hygiene-scan.ts
1964
1964
  import { readdirSync as readdirSync2, readFileSync as readFileSync2, statSync } from "fs";
1965
1965
  import { join } from "path";
1966
- import { checkHygiene } from "@noir-ai/skills";
1966
+ import {
1967
+ checkHygiene,
1968
+ hasHygieneExemption,
1969
+ humanizerFindings,
1970
+ slopFindings
1971
+ } from "@noir-ai/skills";
1967
1972
  function readDirEntries(dir) {
1968
1973
  try {
1969
1974
  return readdirSync2(dir, { withFileTypes: true });
@@ -2089,6 +2094,11 @@ function scanOutputHygiene(root) {
2089
2094
  for (const found of checkHygiene(text, file.kind)) {
2090
2095
  findings.push({ path: file.path, line: found.line, id: found.id, tier: found.tier });
2091
2096
  }
2097
+ if (file.kind === "markdown" && !hasHygieneExemption(text, file.kind)) {
2098
+ for (const found of [...slopFindings(text), ...humanizerFindings(text)]) {
2099
+ findings.push({ path: file.path, line: found.line, id: found.id, tier: found.tier });
2100
+ }
2101
+ }
2092
2102
  } catch {
2093
2103
  }
2094
2104
  }
@@ -7555,12 +7565,13 @@ var init_skills = __esm({
7555
7565
  "noir-recall": "memory",
7556
7566
  "noir-remember": "memory",
7557
7567
  "noir-context": "context",
7558
- "noir-frontend": "domain",
7559
7568
  "noir-backend": "domain",
7569
+ "noir-design": "domain",
7570
+ "noir-design-reference": "domain",
7560
7571
  "noir-doctor": "meta",
7561
7572
  "noir-writing-skills": "meta",
7562
7573
  "noir-rules": "meta",
7563
- "noir-code-hygiene": "meta"
7574
+ "noir-codebase-audit": "meta"
7564
7575
  };
7565
7576
  }
7566
7577
  });