@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.
- package/.github/workflows/codeql.yml +1 -1
- package/.github/workflows/pr-lint.yml +1 -1
- package/.github/workflows/pr.yml +1 -1
- package/.github/workflows/publish.yml +2 -2
- package/.github/workflows/stale.yml +1 -1
- package/.github/workflows/sync-labels.yml +1 -1
- package/CHANGELOG.md +7 -0
- package/CLAUDE.md +121 -0
- package/README.md +18 -13
- package/package.json +14 -12
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
language: ["actions", "javascript"]
|
|
29
29
|
steps:
|
|
30
30
|
- name: CodeQL Analysis
|
|
31
|
-
uses: ivuorinen/actions/codeql-analysis@
|
|
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@
|
|
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 }}
|
package/.github/workflows/pr.yml
CHANGED
|
@@ -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@
|
|
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@
|
|
62
|
+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
|
|
63
63
|
id: cache
|
|
64
64
|
with:
|
|
65
65
|
path: node_modules
|
|
@@ -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@
|
|
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
|
|
35
|
-
| ----------------------------------------- |
|
|
36
|
-
| [Browserslist][browserslist-link] | [@ivuorinen/browserslist-config][pkg-
|
|
37
|
-
| [CommitLint][commitlint-link] | [@ivuorinen/commitlint-config][pkg-commitlint]
|
|
38
|
-
| [ESLint][eslint-link] | [@ivuorinen/eslint-config][pkg-eslint]
|
|
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]
|
|
41
|
-
| [semantic-release][semantic-release-link] | [@ivuorinen/semantic-release-config][pkg-src]
|
|
42
|
-
| [stylelint][stylelint-link] | [@ivuorinen/stylelint-config][pkg-stylelint]
|
|
43
|
-
|
|
44
|
-
[pkg-
|
|
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.
|
|
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.
|
|
53
|
-
"@ivuorinen/commitlint-config": "^1.0.
|
|
54
|
-
"@ivuorinen/eslint-config": "^1.0.
|
|
55
|
-
"@ivuorinen/markdownlint-config": "^1.0.
|
|
56
|
-
"@ivuorinen/prettier-config": "^1.0.
|
|
57
|
-
"@ivuorinen/semantic-release-config": "^1.1.
|
|
58
|
-
"@ivuorinen/stylelint-config": "^1.0.
|
|
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": "
|
|
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.
|
|
71
|
+
"packageManager": "yarn@4.13.0"
|
|
70
72
|
}
|