@onedotmint/charterleaf 0.2.0 → 0.2.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/AGENTS_SNIPPET.md +8 -0
- package/README.md +2 -0
- package/lib/charterleaf.js +6 -0
- package/package.json +1 -1
- package/skills/charterleaf/SKILL.md +8 -0
package/AGENTS_SNIPPET.md
CHANGED
|
@@ -16,6 +16,14 @@ Keep specs compressed and evidence-based. Prefer durable contracts and pitfalls
|
|
|
16
16
|
|
|
17
17
|
Do not create specs for temporary implementation details, current tasks, debugging notes, routine refactors, or trivial fixes with no durable implication. For a durable bug fix, use `Current` / `Expected` when useful and explicitly state what must `PRESERVE`.
|
|
18
18
|
|
|
19
|
+
After non-trivial implementation or debugging, consider whether durable project knowledge was discovered. If so, record only the durable result:
|
|
20
|
+
|
|
21
|
+
- observable behavior, contract, invariant, or non-goal → capability spec;
|
|
22
|
+
- long-lived implementation constraint, boundary, recurring pitfall, or required verification practice → engineering spec;
|
|
23
|
+
- important architectural choice, rationale, or revisit condition → decision.
|
|
24
|
+
|
|
25
|
+
If nothing durable was learned, do not modify specs. Do not record current task status, implementation progress, temporary debugging notes, one-off commands, session history, Todo items, or transient observations. Specs accumulate durable project knowledge, not development activity.
|
|
26
|
+
|
|
19
27
|
For meaningful durable behavior/contract changes, use one change file with only the needed `ADD`, `MODIFY`, `REMOVE`, and/or `PRESERVE` sections. After acceptance and implementation, merge durable results into living specs and delete the change file. Git is the history.
|
|
20
28
|
|
|
21
29
|
Charterleaf is a knowledge layer, not a workflow layer. It must not manage tasks, planning, agents, execution, review, memory, compression, semantic search, code/spec verification, release lifecycle, or Git history.
|
package/README.md
CHANGED
|
@@ -78,6 +78,8 @@ Keep specs compressed and evidence-based. Prefer contracts over commentary and r
|
|
|
78
78
|
|
|
79
79
|
For bug fixes with durable behavioral implications, clarify `Current`, `Expected`, and `PRESERVE` when that reduces accidental scope. Do not create a spec for trivial fixes with no durable implication.
|
|
80
80
|
|
|
81
|
+
After non-trivial implementation or debugging, record only genuinely durable knowledge: behavior, contracts, invariants, and non-goals in capabilities; long-lived constraints, boundaries, pitfalls, or verification practices in engineering; and important architectural choices in decisions. If nothing durable was learned, do not modify specs. Specs accumulate durable project knowledge, not development activity.
|
|
82
|
+
|
|
81
83
|
Load the smallest relevant set; do not read the whole tree by default. After an accepted change is implemented, merge the durable result into living specs and delete the change file. Git is the history.
|
|
82
84
|
|
|
83
85
|
## Other agents
|
package/lib/charterleaf.js
CHANGED
|
@@ -384,6 +384,12 @@ function lint(cwd = process.cwd(), streams = {}) {
|
|
|
384
384
|
ids.set(specId, filePath);
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
|
+
|
|
388
|
+
if (!Object.hasOwn(frontmatter, 'applies_to')) {
|
|
389
|
+
errors.push([display, 'missing applies_to']);
|
|
390
|
+
} else if (Array.isArray(frontmatter.applies_to) && frontmatter.applies_to.length === 0) {
|
|
391
|
+
errors.push([display, 'applies_to must contain at least one path']);
|
|
392
|
+
}
|
|
387
393
|
}
|
|
388
394
|
|
|
389
395
|
for (const field of ['applies_to', 'tags']) {
|
package/package.json
CHANGED
|
@@ -35,6 +35,14 @@ Keep specs compressed and evidence-based. Prefer contracts over commentary and d
|
|
|
35
35
|
|
|
36
36
|
Do not touch specs for renames, lint cleanup, routine refactors, temporary debugging, Todo/status changes, or trivial fixes with no durable implication.
|
|
37
37
|
|
|
38
|
+
After non-trivial implementation or debugging, consider whether durable project knowledge was discovered. If so, record only the durable result:
|
|
39
|
+
|
|
40
|
+
- observable behavior, contract, invariant, or non-goal → capability spec;
|
|
41
|
+
- long-lived implementation constraint, boundary, recurring pitfall, or required verification practice → engineering spec;
|
|
42
|
+
- important architectural choice, rationale, or revisit condition → decision.
|
|
43
|
+
|
|
44
|
+
If nothing durable was learned, do not modify specs. Do not record current task status, implementation progress, temporary debugging notes, one-off commands, session history, Todo items, or transient observations. Specs accumulate durable project knowledge, not development activity.
|
|
45
|
+
|
|
38
46
|
For a durable bug fix, use `Current` and `Expected` when useful and state what must `PRESERVE`. For other durable behavior/contract changes, keep one `specs/changes/<name>.md` delta with only needed `ADD`, `MODIFY`, `REMOVE`, and/or `PRESERVE` sections.
|
|
39
47
|
|
|
40
48
|
After editing specs, run:
|