@ivuorinen/base-configs 1.0.12 → 1.0.13

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.
@@ -28,7 +28,7 @@ jobs:
28
28
  language: ["actions", "javascript"]
29
29
  steps:
30
30
  - name: CodeQL Analysis
31
- uses: ivuorinen/actions/codeql-analysis@7f6a23b59316795c4b3cb3b3b28dd53e53655a33 # v2026.03.11
31
+ uses: ivuorinen/actions/codeql-analysis@27c6baebffe898eb0bd106ee74f96f155067c8aa # v2026.03.28
32
32
  with:
33
33
  language: ${{ matrix.language }}
34
34
  queries: security-and-quality
@@ -49,7 +49,7 @@ jobs:
49
49
 
50
50
  - name: Run PR Lint
51
51
  # https://github.com/ivuorinen/actions
52
- uses: ivuorinen/actions/pr-lint@7f6a23b59316795c4b3cb3b3b28dd53e53655a33 # v2026.03.11
52
+ uses: ivuorinen/actions/pr-lint@27c6baebffe898eb0bd106ee74f96f155067c8aa # v2026.03.28
53
53
  env:
54
54
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55
55
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -29,7 +29,7 @@ jobs:
29
29
  scope: '@ivuorinen'
30
30
 
31
31
  - name: Cache Node Modules
32
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
32
+ uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
33
33
  id: cache
34
34
  with:
35
35
  path: node_modules
@@ -27,7 +27,7 @@ jobs:
27
27
  steps:
28
28
  - name: Run PR Lint
29
29
  # https://github.com/ivuorinen/actions
30
- uses: ivuorinen/actions/pr-lint@7f6a23b59316795c4b3cb3b3b28dd53e53655a33 # v2026.03.11
30
+ uses: ivuorinen/actions/pr-lint@27c6baebffe898eb0bd106ee74f96f155067c8aa # v2026.03.28
31
31
 
32
32
  publish:
33
33
  name: Publish
@@ -59,7 +59,7 @@ jobs:
59
59
  run: npm install -g corepack --force && corepack enable
60
60
 
61
61
  - name: Cache Node Modules
62
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
62
+ uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
63
63
  id: cache
64
64
  with:
65
65
  path: node_modules
@@ -23,4 +23,4 @@ jobs:
23
23
  issues: write
24
24
  pull-requests: write
25
25
  steps:
26
- - uses: ivuorinen/actions/stale@7f6a23b59316795c4b3cb3b3b28dd53e53655a33 # v2026.03.11
26
+ - uses: ivuorinen/actions/stale@27c6baebffe898eb0bd106ee74f96f155067c8aa # v2026.03.28
@@ -39,4 +39,4 @@ jobs:
39
39
  with:
40
40
  token: ${{ secrets.GITHUB_TOKEN }}
41
41
  - name: ⤵️ Sync Latest Labels Definitions
42
- uses: ivuorinen/actions/sync-labels@7f6a23b59316795c4b3cb3b3b28dd53e53655a33 # v2026.03.11
42
+ uses: ivuorinen/actions/sync-labels@27c6baebffe898eb0bd106ee74f96f155067c8aa # v2026.03.28
package/CHANGELOG.md CHANGED
@@ -3,6 +3,13 @@
3
3
  All notable changes to this project will be documented in this file. See
4
4
  [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.0.13](https://github.com/ivuorinen/base-configs/compare/v1.0.12...v1.0.13) (2026-03-29)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * yarn.lock ([ff58755](https://github.com/ivuorinen/base-configs/commit/ff587550e76a027dfd9010470c920fb26591dae3))
12
+
6
13
  ## [1.0.12](https://github.com/ivuorinen/base-configs/compare/v1.0.11...v1.0.12) (2026-03-13)
7
14
 
8
15
  ## [1.0.11](https://github.com/ivuorinen/base-configs/compare/v1.0.10...v1.0.11) (2026-03-12)
package/CLAUDE.md ADDED
@@ -0,0 +1,121 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Commands
6
+
7
+ Node is managed via **mise**, which reads `.nvmrc` automatically. No manual activation needed in an interactive shell. For scripts:
8
+
9
+ ```sh
10
+ mise exec -- yarn <command>
11
+ ```
12
+
13
+ | Task | Command |
14
+ |------|---------|
15
+ | Fix all (prettier → eslint → markdownlint) | `yarn fix` |
16
+ | ESLint autofix | `yarn eslint:fix` |
17
+ | ESLint report only | `yarn eslint:report` |
18
+ | Prettier autofix | `yarn prettier:fix` |
19
+ | Prettier report only | `yarn prettier:report` |
20
+ | Markdownlint autofix | `yarn markdownlint:fix` |
21
+ | Markdownlint report only | `yarn markdownlint:report` |
22
+ | Validate last commit message | `yarn commitlint` |
23
+
24
+ There is no build step and no test suite — this is a configuration distribution package.
25
+
26
+ ## Architecture
27
+
28
+ `@ivuorinen/base-configs` is a **meta-package**: it has no source code of its own. Its sole purpose is to declare the 7 individual config packages as `dependencies` so consumers can install one package and get all configs:
29
+
30
+ | Config | Package |
31
+ |--------|---------|
32
+ | Browserslist | `@ivuorinen/browserslist-config` |
33
+ | CommitLint | `@ivuorinen/commitlint-config` |
34
+ | ESLint | `@ivuorinen/eslint-config` |
35
+ | Markdownlint | `@ivuorinen/markdownlint-config` |
36
+ | Prettier | `@ivuorinen/prettier-config` |
37
+ | Semantic Release | `@ivuorinen/semantic-release-config` |
38
+ | Stylelint | `@ivuorinen/stylelint-config` |
39
+
40
+ Each config package is versioned and published independently to npm. This repo only bumps their version ranges.
41
+
42
+ - **Package manager**: Yarn 4 (Berry) with `node-modules` linker (no PnP) — always use `yarn` for repo development; consumers may install via `npm` as shown in the README
43
+ - **Module system**: ES Modules (`"type": "module"`)
44
+ - **Node requirement**: `>=20` (active version read from `.nvmrc` by mise)
45
+
46
+ ## Release Process
47
+
48
+ Releases are fully automated via **semantic-release** triggered on push to `main`. Commit messages must follow Conventional Commits (enforced by commitlint via a simple-git-hooks `commit-msg` hook). Never manually bump versions or publish.
49
+
50
+ ## EditorConfig Rules
51
+
52
+ `.editorconfig` is authoritative — all generated code must follow it:
53
+ - Charset: UTF-8, line endings: LF
54
+ - Indent: 2 spaces (all file types)
55
+ - Max line length: 120 (disabled for Markdown)
56
+ - Trim trailing whitespace (except Markdown)
57
+
58
+ ---
59
+
60
+ ## context-mode — MANDATORY routing rules
61
+
62
+ You have context-mode MCP tools available. These rules are NOT optional — they protect your context window from flooding. A single unrouted command can dump 56 KB into context and waste the entire session.
63
+
64
+ ### BLOCKED commands — do NOT attempt these
65
+
66
+ #### curl / wget — BLOCKED
67
+ Any Bash command containing `curl` or `wget` is intercepted and replaced with an error message. Do NOT retry.
68
+ Instead use:
69
+ - `ctx_fetch_and_index(url, source)` to fetch and index web pages
70
+ - `ctx_execute(language: "javascript", code: "const r = await fetch(...)")` to run HTTP calls in sandbox
71
+
72
+ #### Inline HTTP — BLOCKED
73
+ Any Bash command containing `fetch('http`, `requests.get(`, `requests.post(`, `http.get(`, or `http.request(` is intercepted and replaced with an error message. Do NOT retry with Bash.
74
+ Instead use:
75
+ - `ctx_execute(language, code)` to run HTTP calls in sandbox — only stdout enters context
76
+
77
+ #### WebFetch — BLOCKED
78
+ WebFetch calls are denied entirely. The URL is extracted and you are told to use `ctx_fetch_and_index` instead.
79
+ Instead use:
80
+ - `ctx_fetch_and_index(url, source)` then `ctx_search(queries)` to query the indexed content
81
+
82
+ ### REDIRECTED tools — use sandbox equivalents
83
+
84
+ #### Bash (>20 lines output)
85
+ Bash is ONLY for: `git`, `mkdir`, `rm`, `mv`, `cd`, `ls`, `yarn install`, `pip install`, and other short-output commands.
86
+ For everything else, use:
87
+ - `ctx_batch_execute(commands, queries)` — run multiple commands + search in ONE call
88
+ - `ctx_execute(language: "shell", code: "...")` — run in sandbox, only stdout enters context
89
+
90
+ #### Read (for analysis)
91
+ If you are reading a file to **Edit** it → Read is correct (Edit needs content in context).
92
+ If you are reading to **analyze, explore, or summarize** → use `ctx_execute_file(path, language, code)` instead. Only your printed summary enters context. The raw file content stays in the sandbox.
93
+
94
+ #### Grep (large results)
95
+ Grep results can flood context. Use `ctx_execute(language: "shell", code: "grep ...")` to run searches in sandbox. Only your printed summary enters context.
96
+
97
+ ### Tool selection hierarchy
98
+
99
+ 1. **GATHER**: `ctx_batch_execute(commands, queries)` — Primary tool. Runs all commands, auto-indexes output, returns search results. ONE call replaces 30+ individual calls.
100
+ 2. **FOLLOW-UP**: `ctx_search(queries: ["q1", "q2", ...])` — Query indexed content. Pass ALL questions as array in ONE call.
101
+ 3. **PROCESSING**: `ctx_execute(language, code)` | `ctx_execute_file(path, language, code)` — Sandbox execution. Only stdout enters context.
102
+ 4. **WEB**: `ctx_fetch_and_index(url, source)` then `ctx_search(queries)` — Fetch, chunk, index, query. Raw HTML never enters context.
103
+ 5. **INDEX**: `ctx_index(content, source)` — Store content in FTS5 knowledge base for later search.
104
+
105
+ ### Subagent routing
106
+
107
+ When spawning subagents (Agent/Task tool), the routing block is automatically injected into their prompt. Bash-type subagents are upgraded to general-purpose so they have access to MCP tools. You do NOT need to manually instruct subagents about context-mode.
108
+
109
+ ### Output constraints
110
+
111
+ - Keep responses under 500 words.
112
+ - Write artifacts (code, configs, PRDs) to FILES — never return them as inline text. Return only: file path + 1-line description.
113
+ - When indexing content, use descriptive source labels so others can `ctx_search(source: "label")` later.
114
+
115
+ ### ctx commands
116
+
117
+ | Command | Action |
118
+ |---------|--------|
119
+ | `ctx stats` | Call the `ctx_stats` MCP tool and display the full output verbatim |
120
+ | `ctx doctor` | Call the `ctx_doctor` MCP tool, run the returned shell command, display as checklist |
121
+ | `ctx upgrade` | Call the `ctx_upgrade` MCP tool, run the returned shell command, display as checklist |
package/README.md CHANGED
@@ -6,8 +6,6 @@ This is a meta package for all my base configs.
6
6
 
7
7
  The main reason for this package is to make it easier to use these configs in other projects, and to update them all at once. No more pull requests to update all the configs one at a time!
8
8
 
9
- [![license MIT][license-badge]][license-link] [![ivuorinen's Code Style][style-badge]][style-link]
10
-
11
9
  > A collection of base configs for code quality and linting tools. Heavily based on `@demartini/base-configs`
12
10
 
13
11
  ## Table of Contents <!-- omit in toc -->
@@ -31,23 +29,30 @@ yarn add @ivuorinen/base-configs --dev
31
29
 
32
30
  ## Available Configurations
33
31
 
34
- | Tool | Package | Version |
35
- | ----------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------- |
36
- | [Browserslist][browserslist-link] | [@ivuorinen/browserslist-config][pkg-browserlist] | [![@ivuorinen/browserslist-config][browserslist-badge]][browserslist-npm] |
37
- | [CommitLint][commitlint-link] | [@ivuorinen/commitlint-config][pkg-commitlint] | [![@ivuorinen/commitlint-config][commitlint-badge]][commitlint-npm] |
38
- | [ESLint][eslint-link] | [@ivuorinen/eslint-config][pkg-eslint] | [![@ivuorinen/eslint-config][eslint-badge]][eslint-npm] |
39
- | [MarkdownLint][markdownlint-link] | [@ivuorinen/markdownlint-config][pkg-markdownlint] | [![@ivuorinen/markdownlint-config][markdownlint-badge]][markdownlint-npm] |
40
- | [Prettier][prettier-link] | [@ivuorinen/prettier-config][pkg-prettier] | [![@ivuorinen/prettier-config][prettier-badge]][prettier-npm] |
41
- | [semantic-release][semantic-release-link] | [@ivuorinen/semantic-release-config][pkg-src] | [![@ivuorinen/semantic-release-config][semantic-release-badge]][semantic-release-npm] |
42
- | [stylelint][stylelint-link] | [@ivuorinen/stylelint-config][pkg-stylelint] | [![@ivuorinen/stylelint-config][stylelint-badge]][stylelint-npm] |
43
-
44
- [pkg-browserlist]: https://www.npmjs.com/package/@ivuorinen/browserlist-config
32
+ | Tool | Package | GitHub | Version |
33
+ | ----------------------------------------- | ----------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------- |
34
+ | [Browserslist][browserslist-link] | [@ivuorinen/browserslist-config][pkg-browserslist] | [GitHub][gh-browserslist] | [![@ivuorinen/browserslist-config][browserslist-badge]][browserslist-npm] |
35
+ | [CommitLint][commitlint-link] | [@ivuorinen/commitlint-config][pkg-commitlint] | [GitHub][gh-commitlint] | [![@ivuorinen/commitlint-config][commitlint-badge]][commitlint-npm] |
36
+ | [ESLint][eslint-link] | [@ivuorinen/eslint-config][pkg-eslint] | [GitHub][gh-eslint] | [![@ivuorinen/eslint-config][eslint-badge]][eslint-npm] |
37
+ | [MarkdownLint][markdownlint-link] | [@ivuorinen/markdownlint-config][pkg-markdownlint] | [GitHub][gh-markdownlint] | [![@ivuorinen/markdownlint-config][markdownlint-badge]][markdownlint-npm] |
38
+ | [Prettier][prettier-link] | [@ivuorinen/prettier-config][pkg-prettier] | [GitHub][gh-prettier] | [![@ivuorinen/prettier-config][prettier-badge]][prettier-npm] |
39
+ | [semantic-release][semantic-release-link] | [@ivuorinen/semantic-release-config][pkg-src] | [GitHub][gh-semantic-release] | [![@ivuorinen/semantic-release-config][semantic-release-badge]][semantic-release-npm] |
40
+ | [stylelint][stylelint-link] | [@ivuorinen/stylelint-config][pkg-stylelint] | [GitHub][gh-stylelint] | [![@ivuorinen/stylelint-config][stylelint-badge]][stylelint-npm] |
41
+
42
+ [pkg-browserslist]: https://www.npmjs.com/package/@ivuorinen/browserslist-config
45
43
  [pkg-commitlint]: https://www.npmjs.com/package/@ivuorinen/commitlint-config
46
44
  [pkg-eslint]: https://www.npmjs.com/package/@ivuorinen/eslint-config
47
45
  [pkg-markdownlint]: https://www.npmjs.com/package/@ivuorinen/markdownlint-config
48
46
  [pkg-prettier]: https://www.npmjs.com/package/@ivuorinen/prettier-config
49
47
  [pkg-src]: https://www.npmjs.com/package/@ivuorinen/semantic-release-config
50
48
  [pkg-stylelint]: https://www.npmjs.com/package/@ivuorinen/stylelint-config
49
+ [gh-browserslist]: https://github.com/ivuorinen/browserslist-config
50
+ [gh-commitlint]: https://github.com/ivuorinen/commitlint-config
51
+ [gh-eslint]: https://github.com/ivuorinen/eslint-config
52
+ [gh-markdownlint]: https://github.com/ivuorinen/markdownlint-config
53
+ [gh-prettier]: https://github.com/ivuorinen/prettier-config
54
+ [gh-semantic-release]: https://github.com/ivuorinen/semantic-release-config
55
+ [gh-stylelint]: https://github.com/ivuorinen/stylelint-config
51
56
 
52
57
  ## Badge
53
58
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ivuorinen/base-configs",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "type": "module",
5
5
  "description": "ivuorinen's shareable configurations meta package",
6
6
  "author": {
@@ -49,22 +49,24 @@
49
49
  "prettier:report": "./node_modules/.bin/prettier '**/*.{js,tsx,ts,json,mjs,cjs}' '.*.{js,mjs,cjs,json}' --check"
50
50
  },
51
51
  "dependencies": {
52
- "@ivuorinen/browserslist-config": "^1.0.1",
53
- "@ivuorinen/commitlint-config": "^1.0.0",
54
- "@ivuorinen/eslint-config": "^1.0.0",
55
- "@ivuorinen/markdownlint-config": "^1.0.1",
56
- "@ivuorinen/prettier-config": "^1.0.0",
57
- "@ivuorinen/semantic-release-config": "^1.1.1",
58
- "@ivuorinen/stylelint-config": "^1.0.6"
52
+ "@ivuorinen/browserslist-config": "^1.0.22",
53
+ "@ivuorinen/commitlint-config": "^1.0.14",
54
+ "@ivuorinen/eslint-config": "^1.0.17",
55
+ "@ivuorinen/markdownlint-config": "^1.0.23",
56
+ "@ivuorinen/prettier-config": "^1.0.14",
57
+ "@ivuorinen/semantic-release-config": "^1.1.20",
58
+ "@ivuorinen/stylelint-config": "^1.0.18"
59
59
  },
60
60
  "devDependencies": {
61
- "@types/node": "*",
61
+ "@types/node": "^25.5.0",
62
62
  "npm-run-all2": "^8.0.4",
63
63
  "simple-git-hooks": "^2.13.1",
64
- "typescript": ">=4.2.0"
64
+ "typescript": "^6.0.2"
65
65
  },
66
66
  "resolutions": {
67
- "minimatch": "^10.2.4"
67
+ "minimatch": "^10.2.4",
68
+ "picomatch": "^4.0.4",
69
+ "undici": "^7.24.0"
68
70
  },
69
- "packageManager": "yarn@4.12.0"
71
+ "packageManager": "yarn@4.13.0"
70
72
  }