@agnostic-prompt/aps 1.1.2 → 1.1.4

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 (26) hide show
  1. package/README.md +8 -4
  2. package/package.json +1 -1
  3. package/payload/agnostic-prompt-standard/SKILL.md +1 -2
  4. package/payload/agnostic-prompt-standard/assets/constants/constants-json-block-v1.0.0.example.md +3 -3
  5. package/payload/agnostic-prompt-standard/platforms/README.md +7 -1
  6. package/payload/agnostic-prompt-standard/platforms/_schemas/platform-manifest.schema.json +83 -10
  7. package/payload/agnostic-prompt-standard/platforms/_template/README.md +0 -2
  8. package/payload/agnostic-prompt-standard/platforms/_template/manifest.json +1 -2
  9. package/payload/agnostic-prompt-standard/platforms/_template/templates/.github/agents/.gitkeep +0 -0
  10. package/payload/agnostic-prompt-standard/platforms/claude-code/README.md +247 -0
  11. package/payload/agnostic-prompt-standard/platforms/claude-code/frontmatter/agent-frontmatter.md +98 -0
  12. package/payload/agnostic-prompt-standard/platforms/claude-code/frontmatter/rules-frontmatter.md +47 -0
  13. package/payload/agnostic-prompt-standard/platforms/claude-code/manifest.json +71 -0
  14. package/payload/agnostic-prompt-standard/platforms/claude-code/tools-registry.json +300 -0
  15. package/payload/agnostic-prompt-standard/platforms/vscode-copilot/README.md +3 -11
  16. package/payload/agnostic-prompt-standard/platforms/vscode-copilot/frontmatter/agent-frontmatter.md +1 -1
  17. package/payload/agnostic-prompt-standard/platforms/vscode-copilot/frontmatter/instructions-frontmatter.md +0 -1
  18. package/payload/agnostic-prompt-standard/platforms/vscode-copilot/manifest.json +0 -1
  19. package/payload/agnostic-prompt-standard/platforms/vscode-copilot/templates/.github/agents/aps-prompt-protocol.agent.md +1 -1
  20. package/payload/agnostic-prompt-standard/references/03-agentic-control.md +55 -14
  21. package/payload/agnostic-prompt-standard/references/04-schemas-and-types.md +0 -3
  22. package/payload/agnostic-prompt-standard/references/05-grammar.md +5 -3
  23. package/src/cli.js +94 -72
  24. package/src/core.js +29 -28
  25. package/payload/agnostic-prompt-standard/assets/agents/vscode-agent-v1.0.0.agent.md +0 -187
  26. package/payload/agnostic-prompt-standard/platforms/vscode-copilot/templates/AGENTS.md +0 -7
package/README.md CHANGED
@@ -23,16 +23,20 @@ aps init
23
23
  ## Commands
24
24
 
25
25
  ```bash
26
- aps init [--repo|--personal] [--platform <id>] [--templates] [--yes] [--force]
26
+ aps init [--repo|--personal] [--platform <id>] [--yes] [--force]
27
27
  aps doctor [--json]
28
28
  aps platforms
29
29
  aps version
30
30
  ```
31
31
 
32
- ## Claude platform path
32
+ ## Platform-specific paths
33
33
 
34
- If you need the Claude platform `.claude/skills` location, pass `--claude`:
34
+ Use `--platform <id>` to specify a platform adapter:
35
35
 
36
36
  ```bash
37
- aps init --claude
37
+ # VS Code / Copilot (default paths: .github/skills, ~/.copilot/skills)
38
+ aps init --platform vscode-copilot
39
+
40
+ # Claude Code (paths: .claude/skills, ~/.claude/skills)
41
+ aps init --platform claude-code
38
42
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agnostic-prompt/aps",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "CLI to install and manage the Agnostic Prompt Standard (APS) skill and platform templates.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -5,7 +5,7 @@ license: Apache-2.0
5
5
  metadata:
6
6
  authors: "Christopher Buckley; Juan Burckhardt; Anastasiya Smirnova"
7
7
  spec_version: "1.0"
8
- framework_revision: "1.1.2"
8
+ framework_revision: "1.1.4"
9
9
  last_updated: "2026-01-15"
10
10
  ---
11
11
 
@@ -55,7 +55,6 @@ This `SKILL.md` is the **entrypoint** for the Agnostic Prompt Standard (APS) v1.
55
55
  - `manifest.json` — file discovery rules.
56
56
  - `tools-registry.json` — tool names, sets, and renames.
57
57
  - `frontmatter/` — copy/paste YAML frontmatter templates.
58
- - `templates/` — drop-in workspace artifacts (`AGENTS.md`, `.github/agents/`).
59
58
  - `scripts/` — optional build / compile / lint scripts (empty by default).
60
59
 
61
60
  ---
@@ -6,10 +6,10 @@ DEFAULT_TZ: "Z"
6
6
 
7
7
  API_CONFIG: JSON<<
8
8
  {
9
- "apiBasePath": "/v1",
10
- "defaultTimeZone": DEFAULT_TZ,
9
+ "api_base_path": "/v1",
10
+ "default_time_zone": DEFAULT_TZ,
11
11
  "retries": 3,
12
- "timeoutMs": 2000
12
+ "timeout_ms": 2000
13
13
  }
14
14
  >>
15
15
  </constants>
@@ -20,7 +20,6 @@ platforms/
20
20
  manifest.json # validates against _schemas/platform-manifest.schema.json
21
21
  tools-registry.json # validates against _schemas/tools-registry.schema.json
22
22
  frontmatter/ # copy/paste blocks for this platform
23
- templates/ # ready-to-copy workspace artifacts
24
23
  ```
25
24
 
26
25
  ## Add a new platform adapter
@@ -37,3 +36,10 @@ platforms/
37
36
  - Anything under `platforms/` is **non-normative** (documentation/templates/mappings only).
38
37
  - Adapters should prefer **mapping + configuration** over rewriting APS core rules.
39
38
 
39
+ ## Scope and Philosophy
40
+
41
+ Adapters are intended to **map** the APS standard to a host platform. They are **not** project generators.
42
+ We do not provide generic project scaffolding (like `settings.json` or root `CLAUDE.md` templates).
43
+
44
+ > See [ADR 0001: Adapter Scope](https://github.com/chris-buckley/agnostic-prompt-standard/blob/main/docs/adr/0001-adapter-scope-no-scaffolding.md)
45
+
@@ -6,8 +6,7 @@
6
6
  "required": [
7
7
  "platformId",
8
8
  "displayName",
9
- "adapterVersion",
10
- "fileConventions"
9
+ "adapterVersion"
11
10
  ],
12
11
  "properties": {
13
12
  "platformId": {
@@ -35,9 +34,6 @@
35
34
  "fileConventions": {
36
35
  "type": "object",
37
36
  "required": [
38
- "skills",
39
- "agents",
40
- "prompts",
41
37
  "instructions"
42
38
  ],
43
39
  "properties": {
@@ -45,25 +41,102 @@
45
41
  "type": "array",
46
42
  "items": {
47
43
  "type": "string"
48
- }
44
+ },
45
+ "description": "Skill file locations (platform-specific)"
49
46
  },
50
47
  "agents": {
51
48
  "type": "array",
52
49
  "items": {
53
50
  "type": "string"
54
- }
51
+ },
52
+ "description": "Agent file locations (platform-specific)"
55
53
  },
56
54
  "prompts": {
57
55
  "type": "array",
58
56
  "items": {
59
57
  "type": "string"
60
- }
58
+ },
59
+ "description": "Prompt file locations (platform-specific)"
61
60
  },
62
61
  "instructions": {
63
62
  "type": "array",
64
63
  "items": {
65
64
  "type": "string"
66
- }
65
+ },
66
+ "description": "Instruction/memory file locations"
67
+ },
68
+ "settings": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "string"
72
+ },
73
+ "description": "Platform-specific settings file locations"
74
+ },
75
+ "mcp": {
76
+ "type": "array",
77
+ "items": {
78
+ "type": "string"
79
+ },
80
+ "description": "MCP server configuration file locations"
81
+ }
82
+ },
83
+ "additionalProperties": true
84
+ },
85
+ "hooks": {
86
+ "type": "object",
87
+ "description": "Platform-specific automation hooks",
88
+ "properties": {
89
+ "available": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ },
94
+ "description": "List of available hook types"
95
+ },
96
+ "configLocation": {
97
+ "type": "string",
98
+ "description": "Where hooks are configured"
99
+ },
100
+ "docsUrl": {
101
+ "type": "string",
102
+ "description": "Documentation URL for hooks"
103
+ }
104
+ },
105
+ "additionalProperties": true
106
+ },
107
+ "imports": {
108
+ "type": "object",
109
+ "description": "File import/reference syntax supported by the platform",
110
+ "properties": {
111
+ "syntax": {
112
+ "type": "string",
113
+ "description": "Import syntax pattern (e.g., @path)"
114
+ },
115
+ "examples": {
116
+ "type": "array",
117
+ "items": {
118
+ "type": "string"
119
+ },
120
+ "description": "Example import statements"
121
+ }
122
+ },
123
+ "additionalProperties": true
124
+ },
125
+ "permissions": {
126
+ "type": "object",
127
+ "description": "Permission/approval system documentation",
128
+ "properties": {
129
+ "configLocation": {
130
+ "type": "string",
131
+ "description": "Where permissions are configured"
132
+ },
133
+ "syntax": {
134
+ "type": "string",
135
+ "description": "Permission syntax description"
136
+ },
137
+ "docsUrl": {
138
+ "type": "string",
139
+ "description": "Documentation URL for permissions"
67
140
  }
68
141
  },
69
142
  "additionalProperties": true
@@ -81,4 +154,4 @@
81
154
  }
82
155
  },
83
156
  "additionalProperties": false
84
- }
157
+ }
@@ -4,7 +4,5 @@ Copy this folder to `platforms/<your-platform-id>/` and fill in:
4
4
 
5
5
  - `manifest.json`
6
6
  - `tools-registry.json`
7
- - `frontmatter/` templates
8
- - `templates/` ready-to-copy artifacts
9
7
 
10
8
  Then validate JSON against the schemas in `platforms/_schemas/`.
@@ -17,8 +17,7 @@
17
17
  ".github/prompts/*.prompt.md"
18
18
  ],
19
19
  "instructions": [
20
- ".github/copilot-instructions.md",
21
- "AGENTS.md"
20
+ ".github/copilot-instructions.md"
22
21
  ]
23
22
  },
24
23
  "notes": "Describe platform-specific constraints here."
@@ -0,0 +1,247 @@
1
+ # Claude Code CLI adapter
2
+
3
+ This adapter documents **how APS fits into Claude Code's configuration system**.
4
+
5
+ ## What this adapter provides
6
+
7
+ - `manifest.json` — file conventions, docs links, hooks/imports/permissions
8
+ - `tools-registry.json` — built-in tools with risk levels and capabilities
9
+ - `frontmatter/` — YAML templates for rules and subagents
10
+
11
+ ## Quickstart
12
+
13
+ 1. Install this APS skill into your repo at:
14
+ - `.github/skills/agnostic-prompt-standard/`
15
+ - OR `.claude/skills/agnostic-prompt-standard/`
16
+
17
+ ## Claude Code file locations (summary)
18
+
19
+ Claude Code discovers these files:
20
+
21
+ ### Memory (instructions)
22
+ - `./CLAUDE.md` — project-level memory (checked into repo)
23
+ - `./.claude/CLAUDE.md` — alternative project memory location
24
+ - `./.claude/rules/*.md` — path-scoped rules with glob patterns
25
+ - `./CLAUDE.local.md` — local overrides (gitignored)
26
+ - `~/.claude/CLAUDE.md` — user-level memory
27
+ - `~/.claude/rules/*.md` — user-level rules
28
+
29
+ ### Settings
30
+ - `./.claude/settings.json` — project settings (checked into repo)
31
+ - `./.claude/settings.local.json` — local settings (gitignored)
32
+ - `~/.claude/settings.json` — user settings
33
+
34
+ ### Custom subagents
35
+ - `./.claude/agents/*.md` — project-level subagents
36
+ - `~/.claude/agents/*.md` — user-level subagents (all projects)
37
+
38
+ ### MCP servers
39
+ - `./.mcp.json` — MCP server configuration
40
+
41
+ See `manifest.json` for the full matrix.
42
+
43
+ ## Memory hierarchy
44
+
45
+ Claude Code loads memory in this order (later overrides earlier):
46
+
47
+ 1. **Enterprise** — managed by organization admins
48
+ 2. **Project** — `./CLAUDE.md`, `./.claude/CLAUDE.md`
49
+ 3. **Rules** — `./.claude/rules/*.md` (path-scoped)
50
+ 4. **User** — `~/.claude/CLAUDE.md`, `./CLAUDE.local.md`
51
+
52
+ ## @path imports
53
+
54
+ Claude Code supports importing file content using `@path` syntax:
55
+
56
+ ```markdown
57
+ @README.md
58
+ @docs/architecture.md
59
+ @~/.claude/shared-rules.md
60
+ ```
61
+
62
+ The referenced file content is injected into the memory context.
63
+
64
+ ## Path-scoped rules
65
+
66
+ Rules in `.claude/rules/*.md` can be scoped to specific paths using frontmatter:
67
+
68
+ ```yaml
69
+ ---
70
+ paths:
71
+ - "src/**/*.ts"
72
+ - "src/**/*.tsx"
73
+ ---
74
+ ```
75
+
76
+ When a rule has `paths:` frontmatter, it only applies when working with files matching those globs.
77
+
78
+ ## Hooks system
79
+
80
+ Claude Code supports hooks that execute shell commands at various lifecycle events:
81
+
82
+ | Hook | When it fires |
83
+ |------|---------------|
84
+ | PreToolUse | Before a tool executes |
85
+ | PostToolUse | After a tool executes |
86
+ | PermissionRequest | When permission is needed |
87
+ | Stop | When Claude stops |
88
+ | SubagentStop | When a subagent stops |
89
+ | UserPromptSubmit | When user submits a prompt |
90
+ | SessionStart | When a session begins |
91
+ | SessionEnd | When a session ends |
92
+ | PreCompact | Before context compaction |
93
+ | Notification | When a notification fires |
94
+
95
+ Configure hooks in `.claude/settings.json`:
96
+
97
+ ```json
98
+ {
99
+ "hooks": {
100
+ "PreToolUse": [
101
+ {
102
+ "matcher": "Bash",
103
+ "command": "echo 'About to run bash'"
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ ```
109
+
110
+ ## Permission rules
111
+
112
+ Control tool permissions in `.claude/settings.json`:
113
+
114
+ ```json
115
+ {
116
+ "permissions": {
117
+ "allow": [
118
+ "Read",
119
+ "Glob",
120
+ "Grep"
121
+ ],
122
+ "deny": [
123
+ "Bash(rm -rf *)"
124
+ ],
125
+ "ask": [
126
+ "Write",
127
+ "Edit"
128
+ ]
129
+ }
130
+ }
131
+ ```
132
+
133
+ ## Custom subagents
134
+
135
+ Claude Code supports custom subagents — specialized agents with their own instructions, tool permissions, and behaviors. Subagents are invoked via the `Task` tool when their description matches the user's request.
136
+
137
+ ### Subagent file locations
138
+
139
+ | Location | Scope |
140
+ |----------|-------|
141
+ | `.claude/agents/*.md` | Project-level |
142
+ | `~/.claude/agents/*.md` | User-level (all projects) |
143
+ | `plugins/agents/` | Plugin-provided |
144
+ | `--agents` CLI flag | Session-only |
145
+
146
+ ### Subagent frontmatter fields
147
+
148
+ | Field | Required | Type | Description |
149
+ |-------|----------|------|-------------|
150
+ | `name` | Yes | String | Unique identifier (lowercase, hyphens) |
151
+ | `description` | Yes | String | Triggers when Claude recognizes this description |
152
+ | `model` | No | String | AI model: `sonnet`, `opus`, `haiku`, `inherit` (default: sonnet) |
153
+ | `tools` | No | Comma-separated | Allowed tools (allowlist) |
154
+ | `disallowedTools` | No | Comma-separated | Denied tools (denylist) |
155
+ | `permissionMode` | No | String | Permission handling mode |
156
+ | `skills` | No | Comma-separated | Skills to inject |
157
+ | `hooks` | No | Object | Lifecycle hooks (PreToolUse, PostToolUse, Stop) |
158
+
159
+ ### Permission modes
160
+
161
+ | Mode | Description |
162
+ |------|-------------|
163
+ | `default` | Normal permission prompts |
164
+ | `acceptEdits` | Auto-accept file edits |
165
+ | `dontAsk` | Minimal prompts |
166
+ | `bypassPermissions` | Skip all prompts (use with caution) |
167
+ | `plan` | Plan mode — research only, no edits |
168
+
169
+ ### Subagent example
170
+
171
+ ```yaml
172
+ ---
173
+ name: code-reviewer
174
+ description: Expert code review specialist. Use after writing or modifying code.
175
+ model: inherit
176
+ tools: Read, Grep, Glob, Bash
177
+ disallowedTools: Write, Edit
178
+ permissionMode: default
179
+ ---
180
+
181
+ You are a senior code reviewer ensuring high standards of code quality.
182
+
183
+ When invoked:
184
+ 1. Run git diff to see recent changes
185
+ 2. Review modified files for:
186
+ - Code style consistency
187
+ - Potential bugs
188
+ - Performance issues
189
+ - Security concerns
190
+ 3. Provide actionable feedback
191
+ ```
192
+
193
+ ### Subagent hooks
194
+
195
+ Subagents can define their own hooks that only apply during subagent execution:
196
+
197
+ ```yaml
198
+ ---
199
+ name: safe-bash-runner
200
+ description: Run bash commands with validation
201
+ hooks:
202
+ PreToolUse:
203
+ - matcher: "Bash"
204
+ hooks:
205
+ - type: command
206
+ command: "./scripts/validate-command.sh"
207
+ ---
208
+ ```
209
+
210
+ See `frontmatter/agent-frontmatter.md` for the full YAML template.
211
+
212
+ ## Tools: built-in tools
213
+
214
+ Claude Code provides built-in tools directly by name (no qualification needed):
215
+
216
+ - `Read` — read file contents
217
+ - `Write` — create/overwrite files
218
+ - `Edit` — edit existing files
219
+ - `Bash` — execute shell commands
220
+ - `Glob` — find files by pattern
221
+ - `Grep` — search file contents
222
+ - `WebFetch` — fetch URL content
223
+ - `WebSearch` — web search
224
+ - `Task` — run subagents
225
+ - `TodoWrite` — manage task list
226
+ - `NotebookEdit` — edit Jupyter notebooks
227
+ - `AskUserQuestion` — ask user questions
228
+
229
+ ### MCP tools
230
+
231
+ MCP tools use the pattern: `mcp__<server>__<tool>`
232
+
233
+ For example: `mcp__filesystem__read_file`
234
+
235
+ See `tools-registry.json` for the full tool catalog with risk levels.
236
+
237
+ ## Differences from VS Code Copilot
238
+
239
+ | Aspect | VS Code Copilot | Claude Code |
240
+ |--------|-----------------|-------------|
241
+ | Instructions | `.github/copilot-instructions.md` | `CLAUDE.md`, `.claude/rules/*.md` |
242
+ | Agents | `.github/agents/*.agent.md` | `.claude/agents/*.md` |
243
+ | Prompts | `.github/prompts/*.prompt.md` | N/A (uses slash commands) |
244
+ | Skills | `.github/skills/<id>/SKILL.md` | N/A (uses MCP servers) |
245
+ | Settings | VS Code settings.json | `.claude/settings.json` |
246
+ | Tool syntax | `#tool` mentions, qualified names | Direct tool names |
247
+ | Extensions | MCP servers, extensions | MCP servers, hooks, plugins |
@@ -0,0 +1,98 @@
1
+ ```yaml
2
+ ---
3
+ # Custom subagent frontmatter for Claude Code
4
+ # Subagents are stored in .claude/agents/*.md
5
+
6
+ # Required: unique identifier (lowercase, hyphens only)
7
+ name: my-subagent
8
+
9
+ # Required: description that triggers this subagent
10
+ description: "What this subagent does and when to use it."
11
+
12
+ # Optional: AI model to use
13
+ # Options: sonnet, opus, haiku, inherit (default: sonnet)
14
+ model: inherit
15
+
16
+ # Optional: allowed tools (allowlist)
17
+ # Comma-separated tool names
18
+ tools: Read, Grep, Glob, Bash
19
+
20
+ # Optional: denied tools (denylist)
21
+ # Comma-separated tool names
22
+ disallowedTools: Write, Edit
23
+
24
+ # Optional: permission handling mode
25
+ # Options: default, acceptEdits, dontAsk, bypassPermissions, plan
26
+ permissionMode: default
27
+
28
+ # Optional: skills to inject
29
+ # Comma-separated skill names
30
+ skills: ""
31
+
32
+ # Optional: lifecycle hooks (only apply during subagent execution)
33
+ hooks:
34
+ PreToolUse:
35
+ - matcher: "Bash"
36
+ hooks:
37
+ - type: command
38
+ command: "./scripts/validate.sh"
39
+ ---
40
+ ```
41
+
42
+ Notes:
43
+ - Claude Code loads subagents from `.claude/agents/*.md` (project) and `~/.claude/agents/*.md` (user).
44
+ - Subagents are invoked via the `Task` tool when their description matches the request.
45
+ - The `name` field must be unique across all loaded subagents.
46
+ - Both `tools` (allowlist) and `disallowedTools` (denylist) can be used together.
47
+
48
+ Permission modes:
49
+
50
+ | Mode | Description |
51
+ |------|-------------|
52
+ | `default` | Normal permission prompts |
53
+ | `acceptEdits` | Auto-accept file edits |
54
+ | `dontAsk` | Minimal prompts |
55
+ | `bypassPermissions` | Skip all prompts (use with caution) |
56
+ | `plan` | Plan mode — research only, no edits |
57
+
58
+ Examples:
59
+
60
+ ```yaml
61
+ ---
62
+ # Read-only research agent
63
+ name: researcher
64
+ description: Research and explore the codebase without making changes
65
+ model: haiku
66
+ tools: Read, Grep, Glob, WebFetch, WebSearch
67
+ disallowedTools: Write, Edit, Bash
68
+ permissionMode: plan
69
+ ---
70
+ ```
71
+
72
+ ```yaml
73
+ ---
74
+ # Code reviewer with validation hooks
75
+ name: code-reviewer
76
+ description: Expert code review specialist for reviewing changes
77
+ model: inherit
78
+ tools: Read, Grep, Glob, Bash
79
+ disallowedTools: Write, Edit
80
+ hooks:
81
+ PreToolUse:
82
+ - matcher: "Bash"
83
+ hooks:
84
+ - type: command
85
+ command: "echo 'Running: $TOOL_INPUT'"
86
+ ---
87
+ ```
88
+
89
+ ```yaml
90
+ ---
91
+ # Test runner agent
92
+ name: test-runner
93
+ description: Run tests and report results
94
+ model: sonnet
95
+ tools: Bash, Read, Glob
96
+ permissionMode: acceptEdits
97
+ ---
98
+ ```
@@ -0,0 +1,47 @@
1
+ ```yaml
2
+ ---
3
+ # Path-scoped rules frontmatter for Claude Code
4
+ # Rules with paths: only apply when working with files matching these globs
5
+
6
+ paths:
7
+ - "src/**/*.ts"
8
+ - "src/**/*.tsx"
9
+ ---
10
+ ```
11
+
12
+ Notes:
13
+ - Claude Code loads rules from `.claude/rules/*.md`.
14
+ - Rules without `paths:` frontmatter apply globally.
15
+ - Rules with `paths:` frontmatter only apply when working with files matching those glob patterns.
16
+ - Multiple glob patterns can be specified as an array.
17
+ - Globs use standard glob syntax (e.g., `**` for recursive matching, `*` for single directory).
18
+
19
+ Examples:
20
+
21
+ ```yaml
22
+ ---
23
+ # Apply only to TypeScript files
24
+ paths:
25
+ - "**/*.ts"
26
+ - "**/*.tsx"
27
+ ---
28
+ ```
29
+
30
+ ```yaml
31
+ ---
32
+ # Apply only to test files
33
+ paths:
34
+ - "**/*.test.ts"
35
+ - "**/*.spec.ts"
36
+ - "tests/**/*"
37
+ ---
38
+ ```
39
+
40
+ ```yaml
41
+ ---
42
+ # Apply only to documentation
43
+ paths:
44
+ - "docs/**/*.md"
45
+ - "README.md"
46
+ ---
47
+ ```