plain-forge 1.0.23 → 1.0.24-next.2f8299c
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 +11 -8
- package/bin/cli.mjs +5 -4
- package/forge/rules/plain-forge.md +10 -0
- package/forge/skills/add-acceptance-test/SKILL.md +1 -1
- package/forge/skills/add-concept/SKILL.md +1 -1
- package/forge/skills/add-feature/SKILL.md +1 -1
- package/forge/skills/add-functional-spec/SKILL.md +1 -1
- package/forge/skills/add-functional-specs/SKILL.md +1 -1
- package/forge/skills/add-implementation-requirement/SKILL.md +1 -1
- package/forge/skills/add-resource/SKILL.md +1 -1
- package/forge/skills/add-template/SKILL.md +1 -1
- package/forge/skills/add-test-requirement/SKILL.md +1 -1
- package/forge/skills/analyze-2-func-specs/SKILL.md +1 -1
- package/forge/skills/analyze-func-specs/SKILL.md +1 -1
- package/forge/skills/analyze-if-func-spec-too-complex/SKILL.md +1 -1
- package/forge/skills/break-down-func-spec/SKILL.md +1 -1
- package/forge/skills/check-plain-env/SKILL.md +1 -1
- package/forge/skills/consolidate-concepts/SKILL.md +1 -1
- package/forge/skills/create-import-module/SKILL.md +1 -1
- package/forge/skills/create-requires-module/SKILL.md +1 -1
- package/forge/skills/debug-specs/SKILL.md +1 -1
- package/forge/skills/forge-plain/SKILL.md +1 -1
- package/forge/skills/init-plain-project/SKILL.md +1 -1
- package/forge/skills/load-plain-reference/SKILL.md +22 -24
- package/forge/{rules → skills/load-plain-reference/rules}/integration-embedded-testing.md +1 -1
- package/forge/skills/plain-healthcheck/SKILL.md +1 -1
- package/forge/skills/refactor-module/SKILL.md +1 -1
- package/forge/skills/resolve-section-ownership/SKILL.md +1 -1
- package/forge/skills/resolve-spec-conflict/SKILL.md +1 -1
- package/package.json +1 -1
- /package/forge/{rules → skills/load-plain-reference/rules}/bullet-continuation.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/concise-specs-examples.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/concise-specs-integration-examples.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/concise-specs.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/definitions.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/examples/integration-embedded-testing/prepare_environment_java.sh +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/examples/integration-embedded-testing/run_conformance_tests_java.sh +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/examples/integration-embedded-testing/run_unittests_java.sh +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/exported-concepts.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/func-specs.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/impl-reqs.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/import-modules.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/integration-embedded.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/integration-standalone.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/integrations.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/linked-resources.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/module-structure.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/required-concepts.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/requires-modules.md +0 -0
- /package/forge/{rules → skills/load-plain-reference/rules}/test-reqs.md +0 -0
package/README.md
CHANGED
|
@@ -87,23 +87,26 @@ Each install writes three subfolders under the chosen directory:
|
|
|
87
87
|
|
|
88
88
|
```
|
|
89
89
|
<agent-dir>/
|
|
90
|
-
skills/ # every plain-forge skill
|
|
91
|
-
rules/ #
|
|
90
|
+
skills/ # every plain-forge skill; the spec-writing rules ship in skills/load-plain-reference/rules/
|
|
91
|
+
rules/ # plain-forge.md, a short pointer to load-plain-reference (see "How the rules get applied" below)
|
|
92
92
|
docs/ # shared reference docs
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
#### How the rules get applied per agent
|
|
96
96
|
|
|
97
|
-
The `skills/` are discovered natively by every supported agent. The
|
|
98
|
-
loads only the rules relevant to the current task and skips rules
|
|
99
|
-
|
|
97
|
+
The `skills/` are discovered natively by every supported agent. The spec-writing rules ship inside the
|
|
98
|
+
`load-plain-reference` skill, which loads only the rules relevant to the current task and skips rules
|
|
99
|
+
already present in context — so a session pays for the rules its task needs, not for the whole rule
|
|
100
|
+
set. The installed `rules/` dir holds only `plain-forge.md`, a short pointer telling the agent to
|
|
101
|
+
invoke `load-plain-reference` when it works on `.plain` files. Each agent picks that pointer up as
|
|
102
|
+
follows:
|
|
100
103
|
|
|
101
104
|
| Agent | How rules are applied |
|
|
102
105
|
|-------|-----------------------|
|
|
103
|
-
| **Claude Code** | Native — Claude Code auto-loads `.claude/rules/*.md
|
|
106
|
+
| **Claude Code** | Native — Claude Code auto-loads `.claude/rules/*.md`. The pointer carries `paths: "**/*.plain"` frontmatter, so it loads only once Claude reads or edits a `.plain` file. No extra wiring. |
|
|
104
107
|
| **OpenCode** | OpenCode doesn't auto-load a `rules/` dir; it reads globs from the `instructions` array in `opencode.json`. plain-forge **merges** a rules glob there — `.opencode/rules/*.md` (project, written to `./opencode.json`) or the absolute `~/.config/opencode/rules/*.md` (global, written to `~/.config/opencode/opencode.json`; absolute because OpenCode doesn't expand `~`). |
|
|
105
108
|
| **ForgeCode** | plain-forge also appends a fenced managed pointer block to `AGENTS.md`: repo-root `./AGENTS.md` for project installs or `~/forge/AGENTS.md` globally. |
|
|
106
|
-
| **Codex / GitHub Copilot / Universal** | No extra instruction file is generated. Their discovered `load-plain-reference` skill loads applicable files from `.agents/rules/` when needed. |
|
|
109
|
+
| **Codex / GitHub Copilot / Universal** | No extra instruction file is generated. Their discovered `load-plain-reference` skill loads applicable files from `.agents/skills/load-plain-reference/rules/` when needed. |
|
|
107
110
|
|
|
108
111
|
When plain-forge touches `opencode.json` or ForgeCode's `AGENTS.md`, it merges into existing content
|
|
109
112
|
and leaves unrelated configuration intact. `uninstall` removes only plain-forge's glob or block.
|
|
@@ -254,7 +257,7 @@ git add vendor/pyro
|
|
|
254
257
|
git commit -m "Bump pyro to vX.Y.Z"
|
|
255
258
|
```
|
|
256
259
|
|
|
257
|
-
On `install`, the CLI reads `forge/skills` and `forge/rules` and writes them into the chosen agent directory (`.claude/`, `.agents/` for Codex/Copilot/universal, `.forge/`, or `.opencode/` — see the per-agent table above for global-scope paths), recording every file it wrote in `<agent-dir>/.plain-forge/manifest.json` so `update` can later refresh and prune precisely. For agents that need it, it also wires the rules into `opencode.json` or ForgeCode's `AGENTS.md` (see [How the rules get applied per agent](#how-the-rules-get-applied-per-agent)).
|
|
260
|
+
On `install`, the CLI reads `forge/skills` and `forge/rules` and writes them into the chosen agent directory (`.claude/`, `.agents/` for Codex/Copilot/universal, `.forge/`, or `.opencode/` — see the per-agent table above for global-scope paths), recording every file it wrote in `<agent-dir>/.plain-forge/manifest.json` so `update` can later refresh and prune precisely. For agents that need it, it also wires the rules pointer into `opencode.json` or ForgeCode's `AGENTS.md` (see [How the rules get applied per agent](#how-the-rules-get-applied-per-agent)).
|
|
258
261
|
|
|
259
262
|
## Available Skills
|
|
260
263
|
|
package/bin/cli.mjs
CHANGED
|
@@ -369,8 +369,8 @@ function opencodeConfigPath(scope) {
|
|
|
369
369
|
// The instructions glob to add. Project scope uses a cwd-relative glob (opencode
|
|
370
370
|
// resolves relative instruction paths against the launch cwd). Global scope must
|
|
371
371
|
// be absolute: opencode does not expand ~ and would resolve a relative path
|
|
372
|
-
// against the project cwd, not the config dir.
|
|
373
|
-
//
|
|
372
|
+
// against the project cwd, not the config dir. rules/ holds only the pointer to
|
|
373
|
+
// load-plain-reference; the authoring rules ship inside that skill and load on demand.
|
|
374
374
|
function opencodeRulesGlob(scope) {
|
|
375
375
|
if (scope === "global") {
|
|
376
376
|
return toPosix(
|
|
@@ -531,8 +531,9 @@ function agentsMdBlock(glob) {
|
|
|
531
531
|
"## ***plain authoring rules (plain-forge)",
|
|
532
532
|
"",
|
|
533
533
|
"When creating or editing `.plain` specification files, first read and follow",
|
|
534
|
-
`every rule file matching \`${glob}\`.
|
|
535
|
-
"the ***plain
|
|
534
|
+
`every rule file matching \`${glob}\`. They route to the \`load-plain-reference\``,
|
|
535
|
+
"skill, which loads the ***plain authoring rules for the task; they are installed",
|
|
536
|
+
"and maintained by plain-forge.",
|
|
536
537
|
AGENTS_MD_END,
|
|
537
538
|
].join("\n");
|
|
538
539
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Routes .plain work to the load-plain-reference skill, which loads the ***plain authoring rules
|
|
3
|
+
paths:
|
|
4
|
+
- "**/*.plain"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ***plain authoring rules
|
|
8
|
+
|
|
9
|
+
- Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to.
|
|
10
|
+
- It loads only the ***plain authoring rules that apply to the task; they ship inside that skill under `rules/`.
|
|
@@ -8,7 +8,7 @@ description: >-
|
|
|
8
8
|
|
|
9
9
|
# Add Acceptance Test
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
12
12
|
|
|
13
13
|
## Workflow
|
|
14
14
|
|
|
@@ -8,7 +8,7 @@ description: >-
|
|
|
8
8
|
|
|
9
9
|
# Add Concept
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
12
12
|
|
|
13
13
|
## Workflow
|
|
14
14
|
|
|
@@ -13,7 +13,7 @@ description: >-
|
|
|
13
13
|
|
|
14
14
|
# Add Feature
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
17
17
|
|
|
18
18
|
`add-feature` is the continuous-loop counterpart of `forge-plain`. Where `forge-plain` bootstraps an entire project from scratch, `add-feature` adds a single feature to an **existing** set of `.plain` specs. It begins with a short intent phase, then runs the authoring loop scoped to one feature.
|
|
19
19
|
|
|
@@ -13,7 +13,7 @@ description: >-
|
|
|
13
13
|
|
|
14
14
|
# Add Functional Spec
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
17
17
|
|
|
18
18
|
## Workflow
|
|
19
19
|
|
|
@@ -12,7 +12,7 @@ description: >-
|
|
|
12
12
|
|
|
13
13
|
# Add Functional Specs
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
16
16
|
|
|
17
17
|
## When to Use
|
|
18
18
|
|
|
@@ -10,7 +10,7 @@ description: >-
|
|
|
10
10
|
|
|
11
11
|
# Add Implementation Requirement
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
14
14
|
|
|
15
15
|
## Workflow
|
|
16
16
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Add Resource
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
Linked resources are external files referenced from within a `.plain` spec using markdown link syntax. The file contents are passed to the renderer alongside the spec, providing additional context for code generation.
|
|
15
15
|
|
|
@@ -8,7 +8,7 @@ description: >-
|
|
|
8
8
|
|
|
9
9
|
# Add Template
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
12
12
|
|
|
13
13
|
Templates use Liquid syntax (`{% include %}`) to reuse the same spec content across multiple `.plain` files. Each inclusion can pass different parameters, producing tailored output from a single source. This is distinct from `import` and `requires` — templates are about textual reuse with parameterization, not module dependencies.
|
|
14
14
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Add Test Requirement
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## Workflow
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Analyze Two Functional Specs
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## Input
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Analyze Functional Specs
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## Input
|
|
15
15
|
|
|
@@ -10,7 +10,7 @@ description: >-
|
|
|
10
10
|
|
|
11
11
|
# Analyze If Functional Spec Is Too Complex
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
14
14
|
|
|
15
15
|
## Why This Matters
|
|
16
16
|
|
|
@@ -8,7 +8,7 @@ description: >-
|
|
|
8
8
|
|
|
9
9
|
# Break Down Functional Spec
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
12
12
|
|
|
13
13
|
## When to Use
|
|
14
14
|
|
|
@@ -12,7 +12,7 @@ description: >-
|
|
|
12
12
|
|
|
13
13
|
# Check Plain Env
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
16
16
|
|
|
17
17
|
This skill answers one question: **does the host machine have everything the ***plain project needs to render and test?** It reads the project, derives the requirement list, probes the machine, and returns a report. It never installs anything itself — that decision belongs to the user.
|
|
18
18
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Consolidate Concepts
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## When to Use
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Create Import Module
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## What an Import Module Is
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Create Requires Module
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## What Requires Does
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Debug Specs
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## When to Use
|
|
15
15
|
|
|
@@ -12,7 +12,7 @@ description: >-
|
|
|
12
12
|
|
|
13
13
|
# Forge Plain
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
16
16
|
|
|
17
17
|
## Role
|
|
18
18
|
|
|
@@ -13,7 +13,7 @@ description: >-
|
|
|
13
13
|
|
|
14
14
|
# Init Plain Project
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
17
17
|
|
|
18
18
|
## Scope
|
|
19
19
|
|
|
@@ -9,8 +9,9 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Load the ***plain reference
|
|
11
11
|
|
|
12
|
-
Load only the rules and references required for the current task. Files under
|
|
13
|
-
the source of truth for `.plain` syntax and authoring constraints. Do not
|
|
12
|
+
Load only the rules and references required for the current task. Files under `rules/`, next to
|
|
13
|
+
this `SKILL.md`, are the source of truth for `.plain` syntax and authoring constraints. Do not
|
|
14
|
+
restate or override them.
|
|
14
15
|
|
|
15
16
|
**First, confirm the rules about to be loaded are current.** On the first invocation of this skill in
|
|
16
17
|
a session, invoke `check-forge-version` before loading any rule file. A stale plain-forge ships stale
|
|
@@ -26,10 +27,7 @@ Skip the check on later invocations in the same session, and skip it when the ne
|
|
|
26
27
|
|
|
27
28
|
## 1. Account for rules already loaded
|
|
28
29
|
|
|
29
|
-
-
|
|
30
|
-
files again.
|
|
31
|
-
- In another agent, do not reread a rule whose full content is already present in the current
|
|
32
|
-
context.
|
|
30
|
+
- Do not reread a rule whose full content is already present in the current context.
|
|
33
31
|
- Otherwise, read the applicable files from the routing table below before inspecting or changing
|
|
34
32
|
`.plain` content.
|
|
35
33
|
|
|
@@ -39,19 +37,19 @@ All paths are relative to this `SKILL.md`.
|
|
|
39
37
|
|
|
40
38
|
| Task or content | Rule files |
|
|
41
39
|
|---|---|
|
|
42
|
-
| New module, file skeleton, section placement, or comments |
|
|
43
|
-
| Moving facts between sections (see `resolve-section-ownership`) |
|
|
44
|
-
| Definitions or concept usage |
|
|
45
|
-
| Functional specs or acceptance tests |
|
|
46
|
-
| Implementation requirements or unit tests |
|
|
47
|
-
| Test requirements or conformance tests |
|
|
48
|
-
| `import` modules |
|
|
49
|
-
| `requires` modules |
|
|
50
|
-
| `required_concepts` |
|
|
51
|
-
| `exported_concepts` |
|
|
52
|
-
| Linked files or `resources/` |
|
|
53
|
-
| Any `.plain` text or example |
|
|
54
|
-
| Drafting or trimming spec wording, or reviewing a spec for verbosity |
|
|
40
|
+
| New module, file skeleton, section placement, or comments | `rules/module-structure.md` |
|
|
41
|
+
| Moving facts between sections (see `resolve-section-ownership`) | `rules/module-structure.md`, plus the rule file of each section involved |
|
|
42
|
+
| Definitions or concept usage | `rules/definitions.md` |
|
|
43
|
+
| Functional specs or acceptance tests | `rules/func-specs.md` |
|
|
44
|
+
| Implementation requirements or unit tests | `rules/impl-reqs.md` |
|
|
45
|
+
| Test requirements or conformance tests | `rules/test-reqs.md` |
|
|
46
|
+
| `import` modules | `rules/import-modules.md` |
|
|
47
|
+
| `requires` modules | `rules/requires-modules.md` |
|
|
48
|
+
| `required_concepts` | `rules/required-concepts.md` |
|
|
49
|
+
| `exported_concepts` | `rules/exported-concepts.md` |
|
|
50
|
+
| Linked files or `resources/` | `rules/linked-resources.md` |
|
|
51
|
+
| Any `.plain` text or example | `rules/bullet-continuation.md`, `rules/concise-specs.md` |
|
|
52
|
+
| Drafting or trimming spec wording, or reviewing a spec for verbosity | `rules/concise-specs-examples.md` |
|
|
55
53
|
|
|
56
54
|
For a whole-file review or a task spanning several sections, load the union of the applicable rule
|
|
57
55
|
files. Do not load every rule by default.
|
|
@@ -60,16 +58,16 @@ files. Do not load every rule by default.
|
|
|
60
58
|
|
|
61
59
|
For an integration spec, always read:
|
|
62
60
|
|
|
63
|
-
-
|
|
61
|
+
- `rules/integrations.md`
|
|
64
62
|
|
|
65
63
|
Then read the rule matching the integration shape:
|
|
66
64
|
|
|
67
|
-
- Embedded integration:
|
|
68
|
-
- Standalone integration:
|
|
69
|
-
- Embedded integration test scripts:
|
|
65
|
+
- Embedded integration: `rules/integration-embedded.md`
|
|
66
|
+
- Standalone integration: `rules/integration-standalone.md`
|
|
67
|
+
- Embedded integration test scripts: `rules/integration-embedded-testing.md`
|
|
70
68
|
|
|
71
69
|
When drafting or trimming the wording of an integration spec, also read
|
|
72
|
-
|
|
70
|
+
`rules/concise-specs-integration-examples.md`.
|
|
73
71
|
|
|
74
72
|
Do not load integration rules for ordinary non-integration specs.
|
|
75
73
|
|
|
@@ -286,4 +286,4 @@ Use them as a template when adding a new embedded integration in Java / Maven
|
|
|
286
286
|
4. Wire them into the module's `config.yaml` via the `unittests-script`, `conformance-tests-script`, and `prepare-environment-script` keys. Use `init-config-file` to assemble the canonical form
|
|
287
287
|
5. Smoke-test by running each script manually with the renderer's output folder as `$1` (and the conformance-tests folder as `$2` for the conformance runner). Confirm exit codes match what the renderer expects
|
|
288
288
|
|
|
289
|
-
For non-Java languages, the plain-forge skills [`implement-prepare-environment-script`](
|
|
289
|
+
For non-Java languages, the plain-forge skills [`implement-prepare-environment-script`](../../implement-prepare-environment-script/SKILL.md), [`implement-unit-testing-script`](../../implement-unit-testing-script/SKILL.md), and [`implement-conformance-testing-script`](../../implement-conformance-testing-script/SKILL.md) adapt the contract above to Python, Node.js, Go, Rust, Flutter, and others. Always route script creation through these skills so the cross-cutting rules above are applied uniformly.
|
|
@@ -13,7 +13,7 @@ description: >-
|
|
|
13
13
|
|
|
14
14
|
# Plain Healthcheck
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation. Step 3b checks every module against those rules, and they are needed to fix what `plain-parser` reports in Step 3a.
|
|
17
17
|
|
|
18
18
|
## When to run
|
|
19
19
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Refactor Module
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## When to Use
|
|
15
15
|
|
|
@@ -6,7 +6,7 @@ description: >-
|
|
|
6
6
|
|
|
7
7
|
# Resolve Section Ownership
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
10
10
|
|
|
11
11
|
This is the ownership counterpart to `break-down-func-spec`. That skill splits one functional spec into several because it is **too large**; this one moves facts between sections because they are in the **wrong place**. The two are unrelated: a correctly placed spec can be too large, and a one-line bullet can be misplaced.
|
|
12
12
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
|
|
10
10
|
# Resolve Spec Conflict
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
**Load the rules first.** Before you read, edit, or write any `.plain` file, invoke the `load-plain-reference` skill and read the rule files it routes you to. Skip this only if `load-plain-reference` already ran in this conversation.
|
|
13
13
|
|
|
14
14
|
## When This Applies
|
|
15
15
|
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
/package/forge/{rules → skills/load-plain-reference/rules}/concise-specs-integration-examples.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|