@deftai/directive-content 0.55.0

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 (250) hide show
  1. package/.agents/skills/deft/SKILL.md +6 -0
  2. package/.agents/skills/deft-directive-article-review/SKILL.md +11 -0
  3. package/.agents/skills/deft-directive-build/SKILL.md +10 -0
  4. package/.agents/skills/deft-directive-cost/SKILL.md +12 -0
  5. package/.agents/skills/deft-directive-debug/SKILL.md +13 -0
  6. package/.agents/skills/deft-directive-gh-arch/SKILL.md +11 -0
  7. package/.agents/skills/deft-directive-gh-slice/SKILL.md +10 -0
  8. package/.agents/skills/deft-directive-glossary/SKILL.md +10 -0
  9. package/.agents/skills/deft-directive-interview/SKILL.md +9 -0
  10. package/.agents/skills/deft-directive-pre-pr/SKILL.md +9 -0
  11. package/.agents/skills/deft-directive-refinement/SKILL.md +10 -0
  12. package/.agents/skills/deft-directive-release/SKILL.md +12 -0
  13. package/.agents/skills/deft-directive-review-cycle/SKILL.md +10 -0
  14. package/.agents/skills/deft-directive-setup/SKILL.md +10 -0
  15. package/.agents/skills/deft-directive-swarm/SKILL.md +10 -0
  16. package/.agents/skills/deft-directive-sync/SKILL.md +9 -0
  17. package/.agents/skills/deft-directive-triage/SKILL.md +9 -0
  18. package/.agents/skills/deft-directive-write-skill/SKILL.md +9 -0
  19. package/LICENSE.md +22 -0
  20. package/QUICK-START.md +167 -0
  21. package/UPGRADING.md +517 -0
  22. package/coding/build-output.md +28 -0
  23. package/coding/coding.md +235 -0
  24. package/coding/debugging.md +110 -0
  25. package/coding/holzmann.md +96 -0
  26. package/coding/hygiene.md +127 -0
  27. package/coding/security.md +158 -0
  28. package/coding/testing.md +162 -0
  29. package/coding/toolchain.md +44 -0
  30. package/commands.md +300 -0
  31. package/context/context.md +57 -0
  32. package/context/deterministic-split.md +67 -0
  33. package/context/examples.md +26 -0
  34. package/context/fractal-summaries.md +69 -0
  35. package/context/long-horizon.md +46 -0
  36. package/context/spec-deltas.md +177 -0
  37. package/context/tool-design.md +34 -0
  38. package/context/working-memory.md +62 -0
  39. package/contracts/boundary-maps.md +65 -0
  40. package/contracts/deterministic-questions.md +59 -0
  41. package/contracts/hierarchy.md +77 -0
  42. package/conventions/content-manifest.json +399 -0
  43. package/conventions/machine-generated-banner.md +130 -0
  44. package/conventions/references.md +120 -0
  45. package/conventions/rule-ownership.json +382 -0
  46. package/conventions/task-caching.md +43 -0
  47. package/conventions/vbrief-filenames.md +70 -0
  48. package/deployments/README.md +37 -0
  49. package/deployments/agentuity/README.md +138 -0
  50. package/deployments/agentuity/via-cli.md +380 -0
  51. package/deployments/agentuity/via-cloud.md +425 -0
  52. package/deployments/agentuity/via-github-actions.md +664 -0
  53. package/deployments/agentuity/via-gravity-network.md +606 -0
  54. package/deployments/agentuity/via-vpc.md +607 -0
  55. package/deployments/aws/README.md +38 -0
  56. package/deployments/aws/via-app-runner.md +612 -0
  57. package/deployments/aws/via-ecs-fargate.md +561 -0
  58. package/deployments/aws/via-elastic-beanstalk.md +628 -0
  59. package/deployments/aws/via-lambda.md +649 -0
  60. package/deployments/azure/README.md +37 -0
  61. package/deployments/azure/via-aks.md +390 -0
  62. package/deployments/azure/via-app-service.md +564 -0
  63. package/deployments/azure/via-container-apps.md +599 -0
  64. package/deployments/azure/via-functions.md +552 -0
  65. package/deployments/cloud-gov/README.md +63 -0
  66. package/deployments/cloud-gov/agents/compliance-docs.md +154 -0
  67. package/deployments/cloud-gov/agents.md +39 -0
  68. package/deployments/cloud-gov/cicd.md +64 -0
  69. package/deployments/cloud-gov/deployment.md +150 -0
  70. package/deployments/cloud-gov/logging.md +43 -0
  71. package/deployments/cloud-gov/manifest.md +121 -0
  72. package/deployments/cloud-gov/overview.md +58 -0
  73. package/deployments/cloud-gov/security.md +46 -0
  74. package/deployments/cloud-gov/services.md +72 -0
  75. package/deployments/cloud-gov/upstream/README.md +18 -0
  76. package/deployments/cloudflare/README.md +33 -0
  77. package/deployments/cloudflare/via-dashboard.md +83 -0
  78. package/deployments/cloudflare/via-git.md +90 -0
  79. package/deployments/cloudflare/via-github-actions.md +185 -0
  80. package/deployments/cloudflare/via-terraform.md +157 -0
  81. package/deployments/cloudflare/via-wrangler.md +165 -0
  82. package/deployments/fly-io/README.md +37 -0
  83. package/deployments/fly-io/via-dockerfile.md +648 -0
  84. package/deployments/fly-io/via-flyctl.md +653 -0
  85. package/deployments/fly-io/via-github-actions.md +695 -0
  86. package/deployments/fly-io/via-multi-region.md +598 -0
  87. package/deployments/google/README.md +34 -0
  88. package/deployments/google/via-app-engine.md +42 -0
  89. package/deployments/google/via-cloud-functions.md +23 -0
  90. package/deployments/google/via-cloud-run.md +330 -0
  91. package/deployments/google/via-gke.md +23 -0
  92. package/deployments/netlify/README.md +99 -0
  93. package/deployments/netlify/via-cli.md +17 -0
  94. package/deployments/netlify/via-functions.md +19 -0
  95. package/deployments/netlify/via-git.md +25 -0
  96. package/deployments/vercel/README.md +90 -0
  97. package/deployments/vercel/via-api.md +16 -0
  98. package/deployments/vercel/via-cli.md +17 -0
  99. package/deployments/vercel/via-git.md +24 -0
  100. package/docs/BROWNFIELD.md +179 -0
  101. package/docs/getting-started.md +137 -0
  102. package/docs/good-agents-md.md +137 -0
  103. package/events/README.md +89 -0
  104. package/events/event-record.schema.json +26 -0
  105. package/events/registry.json +166 -0
  106. package/events/registry.schema.json +71 -0
  107. package/glossary.md +145 -0
  108. package/incidents/README.md +81 -0
  109. package/incidents/_template.md +38 -0
  110. package/interfaces/cli.md +104 -0
  111. package/interfaces/rest.md +212 -0
  112. package/interfaces/tui.md +242 -0
  113. package/interfaces/web.md +123 -0
  114. package/languages/6502-DASM.md +132 -0
  115. package/languages/c.md +235 -0
  116. package/languages/commands.md +23 -0
  117. package/languages/cpp.md +132 -0
  118. package/languages/csharp.md +259 -0
  119. package/languages/dart.md +183 -0
  120. package/languages/delphi.md +218 -0
  121. package/languages/elixir.md +208 -0
  122. package/languages/go.md +78 -0
  123. package/languages/java.md +278 -0
  124. package/languages/javascript.md +163 -0
  125. package/languages/julia.md +175 -0
  126. package/languages/kotlin.md +193 -0
  127. package/languages/markdown.md +168 -0
  128. package/languages/mermaid.md +146 -0
  129. package/languages/officejs.md +392 -0
  130. package/languages/python.md +209 -0
  131. package/languages/r.md +163 -0
  132. package/languages/rust.md +216 -0
  133. package/languages/sql.md +216 -0
  134. package/languages/swift.md +153 -0
  135. package/languages/typescript.md +132 -0
  136. package/languages/vba.md +279 -0
  137. package/languages/vhdl.md +180 -0
  138. package/languages/visual-basic.md +151 -0
  139. package/languages/zig.md +196 -0
  140. package/meta/SOUL.md +27 -0
  141. package/meta/code-field.md +44 -0
  142. package/meta/morals.md +40 -0
  143. package/meta/philosophy.md +39 -0
  144. package/meta/project.md +49 -0
  145. package/meta/ralph.md +223 -0
  146. package/meta/security.md +80 -0
  147. package/meta/versioning.md +326 -0
  148. package/package.json +22 -0
  149. package/packs/lessons/lessons-pack-0.1.json +553 -0
  150. package/packs/patterns/patterns-pack-0.1.json +57 -0
  151. package/packs/rules/rules-pack-0.1.json +4767 -0
  152. package/packs/skills/skills-pack-0.1.json +262 -0
  153. package/packs/strategies/strategies-pack-0.1.json +167 -0
  154. package/packs/swarm-spec/swarm-spec-pack-0.1.json +17 -0
  155. package/patterns/executor-layer-credentials.md +227 -0
  156. package/patterns/llm-app.md +156 -0
  157. package/patterns/multi-agent.md +278 -0
  158. package/patterns/prompt-assembly-layer-ordering.md +154 -0
  159. package/patterns/role-as-overlay.md +179 -0
  160. package/platforms/2600.md +137 -0
  161. package/platforms/unity.md +329 -0
  162. package/references/composer-skill-porting.md +152 -0
  163. package/references/cost-models.md +163 -0
  164. package/references/ip-risk.md +246 -0
  165. package/references/plain-english-ux.md +275 -0
  166. package/resilience/context-pruning.md +67 -0
  167. package/resilience/continue-here.md +62 -0
  168. package/scm/changelog.md +276 -0
  169. package/scm/git.md +139 -0
  170. package/scm/github.md +265 -0
  171. package/secrets/.gitkeep +0 -0
  172. package/skills/deft-build/SKILL.md +20 -0
  173. package/skills/deft-directive-article-review/SKILL.md +156 -0
  174. package/skills/deft-directive-build/SKILL.md +302 -0
  175. package/skills/deft-directive-cost/SKILL.md +201 -0
  176. package/skills/deft-directive-debug/SKILL.md +140 -0
  177. package/skills/deft-directive-decompose/SKILL.md +96 -0
  178. package/skills/deft-directive-gh-arch/SKILL.md +160 -0
  179. package/skills/deft-directive-gh-slice/SKILL.md +199 -0
  180. package/skills/deft-directive-glossary/SKILL.md +118 -0
  181. package/skills/deft-directive-interview/SKILL.md +528 -0
  182. package/skills/deft-directive-pre-pr/SKILL.md +131 -0
  183. package/skills/deft-directive-probe/SKILL.md +127 -0
  184. package/skills/deft-directive-refinement/SKILL.md +403 -0
  185. package/skills/deft-directive-release/SKILL.md +266 -0
  186. package/skills/deft-directive-review-cycle/SKILL.md +401 -0
  187. package/skills/deft-directive-setup/SKILL.md +717 -0
  188. package/skills/deft-directive-swarm/SKILL.md +989 -0
  189. package/skills/deft-directive-sync/SKILL.md +288 -0
  190. package/skills/deft-directive-triage/SKILL.md +137 -0
  191. package/skills/deft-directive-write-skill/SKILL.md +169 -0
  192. package/skills/deft-interview/SKILL.md +16 -0
  193. package/skills/deft-pre-pr/SKILL.md +16 -0
  194. package/skills/deft-review-cycle/SKILL.md +16 -0
  195. package/skills/deft-roadmap-refresh/SKILL.md +16 -0
  196. package/skills/deft-setup/SKILL.md +20 -0
  197. package/skills/deft-swarm/SKILL.md +16 -0
  198. package/skills/deft-sync/SKILL.md +16 -0
  199. package/strategies/README.md +83 -0
  200. package/strategies/artifact-guards.md +85 -0
  201. package/strategies/bdd.md +115 -0
  202. package/strategies/brownfield.md +7 -0
  203. package/strategies/discuss.md +129 -0
  204. package/strategies/emit-hints.md +69 -0
  205. package/strategies/enterprise.md +193 -0
  206. package/strategies/interview.md +551 -0
  207. package/strategies/map.md +179 -0
  208. package/strategies/probe.md +151 -0
  209. package/strategies/rapid.md +155 -0
  210. package/strategies/research.md +155 -0
  211. package/strategies/roadmap.md +9 -0
  212. package/strategies/speckit.md +437 -0
  213. package/strategies/v0-20-contract.md +134 -0
  214. package/strategies/yolo.md +169 -0
  215. package/swarm/swarm.md +300 -0
  216. package/templates/COST-ESTIMATE.md +114 -0
  217. package/templates/PULL_REQUEST_TEMPLATE.md +35 -0
  218. package/templates/agent-prompt-preamble.md +409 -0
  219. package/templates/agents-entry.md +211 -0
  220. package/templates/agents-entry.placeholders.md +75 -0
  221. package/templates/embed.go +20 -0
  222. package/templates/embed_test.go +36 -0
  223. package/templates/make-spec-example.md +9 -0
  224. package/templates/make-spec.md +246 -0
  225. package/templates/project.md.template +52 -0
  226. package/templates/specification.md +1 -0
  227. package/templates/swarm-greptile-poller-prompt.md +556 -0
  228. package/templates/user.md.template +31 -0
  229. package/tools/RWLDL.md +80 -0
  230. package/tools/greptile.md +141 -0
  231. package/tools/installer.md +23 -0
  232. package/tools/taskfile-migration.md +32 -0
  233. package/tools/taskfile.md +185 -0
  234. package/tools/telemetry.md +285 -0
  235. package/vbrief/schemas/cache-meta.schema.json +137 -0
  236. package/vbrief/schemas/candidates.schema.json +130 -0
  237. package/vbrief/schemas/codebase-map.schema.json +213 -0
  238. package/vbrief/schemas/lessons-pack.schema.json +134 -0
  239. package/vbrief/schemas/patterns-pack.schema.json +84 -0
  240. package/vbrief/schemas/rules-pack.schema.json +105 -0
  241. package/vbrief/schemas/skills-pack.schema.json +94 -0
  242. package/vbrief/schemas/slices.schema.json +87 -0
  243. package/vbrief/schemas/strategies-pack.schema.json +89 -0
  244. package/vbrief/schemas/swarm-spec-pack.schema.json +84 -0
  245. package/vbrief/schemas/vbrief-core.schema.json +1022 -0
  246. package/vbrief/vbrief.md +684 -0
  247. package/verification/integration.md +76 -0
  248. package/verification/plan-checking.md +85 -0
  249. package/verification/uat.md +60 -0
  250. package/verification/verification.md +117 -0
@@ -0,0 +1,67 @@
1
+ # Context Pruning
2
+
3
+ Fresh context windows for every task — eliminating context rot.
4
+
5
+ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
6
+
7
+ **⚠️ See also**: [context/context.md](../context/context.md) | [context/fractal-summaries.md](../context/fractal-summaries.md) | [core/glossary.md](../glossary.md)
8
+
9
+ > Adapted from [GSD](https://github.com/gsd-build/get-shit-done) context pruning model.
10
+
11
+ ---
12
+
13
+ ## Core Principle
14
+
15
+ Context rot is the silent killer of multi-task agent work. By task 3–4 in a sequence, the context window is saturated with stale tool output, dead-end debugging, and outdated file reads. The model doesn't know what's current — reasoning quality drops as signal-to-noise collapses.
16
+
17
+ ---
18
+
19
+ ## Task Anchoring
20
+
21
+ - ~ Each task gets a **logical anchor point** in the conversation
22
+ - ~ Before each task, prune prior tasks' tool calls, intermediate reads, and debugging traces
23
+ - ! The only things in context for a new task: **current task plan** + **curated upstream summaries**
24
+ - ⊗ Carrying forward stale file reads, old terminal output, or resolved debugging traces
25
+
26
+ ## Zero Discovery Calls
27
+
28
+ - ~ Pre-assemble everything the agent needs **before** the task starts:
29
+ - Task plan (goal, steps, acceptance criteria)
30
+ - Compressed summaries from dependency features (see [fractal-summaries.md](../context/fractal-summaries.md))
31
+ - Locked decisions from interview phase (see [strategies/discuss.md](../strategies/discuss.md))
32
+ - Continue checkpoint data if resuming (see [resilience/continue-here.md](./continue-here.md))
33
+ - ~ If the agent must `grep` for project structure or search for prior decisions, the context assembly is broken
34
+ - ⊗ Spending tokens on "where am I, what exists, what was decided" — that's context assembly's job
35
+
36
+ ## Token Budget
37
+
38
+ - ~ Cap injected summary context at **~2500 tokens**
39
+ - ~ If dependency chain is too large, drop oldest/least relevant summaries first
40
+ - ~ Priority: release summaries > feature summaries > task summaries
41
+ - ! Never exceed the budget by loading "just one more" summary
42
+
43
+ ---
44
+
45
+ ## Self-Monitoring
46
+
47
+ Behavioral guidelines for recognizing and acting on context degradation mid-sequence.
48
+
49
+ - ~ After every 3 completed tasks in a sequence, pause and assess: is reasoning quality declining?
50
+ - ~ Watch for these signals of context rot:
51
+ - Repeating tool calls that were already made earlier
52
+ - Conflating details from different tasks
53
+ - Hesitating on decisions that were already locked
54
+ - Growing urge to re-read files that haven't changed
55
+ - ! When signals appear: write a continue checkpoint (see [continue-here.md](./continue-here.md)) and start a fresh context
56
+ - ~ Proactively checkpoint **before** degradation — don't wait until reasoning visibly breaks
57
+ - ≉ Pushing through "just one more task" when context is saturated
58
+ - ? If task count is uncertain, err on the side of checkpointing early
59
+
60
+ ---
61
+
62
+ ## Anti-Patterns
63
+
64
+ - ⊗ Task 5 seeing 40 tool calls from tasks 1–4
65
+ - ⊗ Referencing variables/patterns from code that was since refactored
66
+ - ⊗ Avoiding approaches that failed earlier for reasons that no longer apply
67
+ - ⊗ Re-reading the entire project structure at the start of every task
@@ -0,0 +1,62 @@
1
+ # Continue-Here: Interruption Recovery
2
+
3
+ Surviving context window exhaustion, session timeouts, and manual stops.
4
+
5
+ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
6
+
7
+ **⚠️ See also**: [context/long-horizon.md](../context/long-horizon.md) | [resilience/context-pruning.md](./context-pruning.md) | [core/glossary.md](../glossary.md)
8
+
9
+ > Adapted from [GSD](https://github.com/gsd-build/get-shit-done) continue-here model.
10
+
11
+ ---
12
+
13
+ ## Core Principle
14
+
15
+ Sessions end. Work must not be lost. A fresh session must resume from **exactly** where the prior one stopped — without the human re-explaining everything.
16
+
17
+ ---
18
+
19
+ ## When to Write a Continue Checkpoint
20
+
21
+ - ! On session end (timeout, user stop, compaction event)
22
+ - ! On context window exhaustion
23
+ - ~ Proactively when task complexity suggests resumption is likely
24
+ - ? Mid-task if a natural checkpoint is reached
25
+
26
+ ## Continue Checkpoint Contents
27
+
28
+ Persist to `./vbrief/continue.vbrief.json` in vBRIEF format:
29
+
30
+ - ! **Completed** — what's already done (vBRIEF items with `completed` status)
31
+ - ! **Remaining** — what's left (vBRIEF items with `pending` status)
32
+ - ! **Decisions** — choices made during this session (vBRIEF narratives)
33
+ - ~ **Hazards** — what was tricky, what to watch out for (narrative)
34
+ - ! **Resume point** — the exact first thing to do when resuming (narrative on the next `pending` item)
35
+ - ! **Scope vBRIEF reference** — when scope vBRIEFs exist, MUST include `planRef` to the scope vBRIEF(s) the agent was working on (enables the resuming agent to load the durable scope record)
36
+
37
+ ## Resume Protocol
38
+
39
+ - ! On resume, read the continue checkpoint — **don't replay conversation history**
40
+ - ! Load the task plan + continue checkpoint into context
41
+ - ! Pick up from the resume point, not from the beginning
42
+ - ! After successful resume, mark the continue checkpoint consumed (status: `completed`)
43
+ - ⊗ Re-debate decisions already recorded in the continue checkpoint
44
+ - ⊗ Re-read prior conversation to reconstruct state
45
+
46
+ ## Continue Checkpoint Lifecycle
47
+
48
+ - ! Continue checkpoints are **ephemeral** — consumed on resume, not permanent records
49
+ - ~ Durable learnings from the session → persist to [meta/lessons.md](../../meta/lessons.md)
50
+ - ~ Durable state → persist to the task's vBRIEF plan file or scope vBRIEF(s) in lifecycle folders
51
+ - ! Scope vBRIEFs (`./vbrief/{proposed,pending,active,completed,cancelled}/`) are **durable** — they persist across sessions and are shared between agents; do not conflate them with ephemeral continue checkpoints
52
+ - ⊗ Accumulate stale continue checkpoints — clean up after resume
53
+
54
+ ---
55
+
56
+ ## Anti-Patterns
57
+
58
+ - ⊗ Resuming by asking the user "where were we?"
59
+ - ⊗ Re-reading full conversation history instead of the continue checkpoint
60
+ - ⊗ Losing in-flight decisions because they weren't persisted
61
+ - ⊗ Starting over from scratch after an interruption
62
+ - ⊗ Creating `continue-{ULID}.json` — the file is singular: `continue.vbrief.json`
@@ -0,0 +1,276 @@
1
+ # Changelog Standards
2
+
3
+ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
4
+
5
+ **⚠️ See also**: [git.md](./git.md) | [github.md](./github.md) | [versioning.md](../meta/versioning.md)
6
+
7
+ **Specification**: [Keep a Changelog 1.0.0](https://keepachangelog.com/en/1.0.0/)
8
+
9
+ ## Scope
10
+
11
+ ! CHANGELOG.md is maintained **on every PR** under `[Unreleased]` and published as a versioned entry at release time.
12
+
13
+ ## Purpose
14
+
15
+ The changelog documents notable changes for **users and consumers** of the software between releases. Individual commits are tracked in git history for developers.
16
+
17
+ ## Format
18
+
19
+ ! Use Keep a Changelog format in `CHANGELOG.md`:
20
+
21
+ ```markdown
22
+ # Changelog
23
+
24
+ All notable changes to this project will be documented in this file.
25
+
26
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
27
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
28
+
29
+ ## [Unreleased]
30
+
31
+ ### Added
32
+ - New features in development
33
+
34
+ ### Changed
35
+ - Changes in existing functionality
36
+
37
+ ### Deprecated
38
+ - Soon-to-be removed features
39
+
40
+ ### Removed
41
+ - Removed features
42
+
43
+ ### Fixed
44
+ - Bug fixes
45
+
46
+ ### Security
47
+ - Security vulnerability fixes
48
+
49
+ ## [1.0.0] - 2024-01-18
50
+
51
+ ### Added
52
+ - Initial release
53
+
54
+ [Unreleased]: https://github.com/user/repo/compare/v1.0.0...HEAD
55
+ [1.0.0]: https://github.com/user/repo/releases/tag/v1.0.0
56
+ ```
57
+
58
+ ## Sections
59
+
60
+ ! Use exactly these section headings:
61
+
62
+ - **Added** - New features
63
+ - **Changed** - Changes in existing functionality
64
+ - **Deprecated** - Soon-to-be removed features
65
+ - **Removed** - Removed features
66
+ - **Fixed** - Bug fixes
67
+ - **Security** - Security vulnerability fixes
68
+
69
+ ~ Include only sections with changes for each release.
70
+
71
+ ## When to Update
72
+
73
+ ! Update CHANGELOG.md **on every PR**, not just at release time:
74
+
75
+ 1. Add your entry under `[Unreleased]` in the appropriate section (Added/Changed/Fixed/Removed)
76
+ 2. Reference the issue number: `- **Feature Name**: description (#42)`
77
+ 3. The PR template checklist enforces this — reviewers should verify
78
+
79
+ ? Skip the changelog entry only for test-only, CI-only, or purely internal changes.
80
+
81
+ At release time, `[Unreleased]` is renamed to the new version (see Release Process below).
82
+
83
+ ## What to Include
84
+
85
+ ! Include changes that affect **users, integrations, or framework-level tooling/structure**:
86
+
87
+ **Include:**
88
+ - New features users can access
89
+ - Breaking changes requiring user action
90
+ - Deprecated features users should stop using
91
+ - Bug fixes users will notice
92
+ - Security fixes
93
+ - Important performance improvements
94
+
95
+ **Exclude:**
96
+ - Internal refactoring invisible to users
97
+ - Documentation typos
98
+ - Test-only changes
99
+ - CI-only pipeline tweaks
100
+
101
+ ## Version Format
102
+
103
+ ! Each release section takes the form:
104
+
105
+ ```markdown
106
+ ## [MAJOR.MINOR.PATCH] - YYYY-MM-DD
107
+ ```
108
+
109
+ ! Versions listed in reverse chronological order (newest first).
110
+
111
+ ! Use semantic versioning for version numbers (see [versioning.md](../meta/versioning.md)).
112
+
113
+ ## Optional Release Summary Blockquote
114
+
115
+ ? An optional one-line Markdown blockquote may appear directly after the `## [MAJOR.MINOR.PATCH] - YYYY-MM-DD` heading, sandwiched by blank lines:
116
+
117
+ ```markdown
118
+ ## [1.1.0] - 2024-02-01
119
+
120
+ > Adds dark mode and CSV export, replacing the legacy theme picker.
121
+
122
+ ### Added
123
+ - Dark mode support
124
+ - Export data to CSV format
125
+ ```
126
+
127
+ The blockquote captures the operator's one-sentence release narrative (recommended 80-160 chars). It is authored once during the release flow (`task release -- <version> --summary "<text>"`; see `skills/deft-directive-release/SKILL.md` Phase 1) and propagates verbatim into the GitHub release body (auto-pickup via `scripts/release.py::_section_for_version`) AND the Phase 8 Slack `*Summary*:` slot. The blockquote is inline Markdown -- `**bold**`, `[link](url)`, etc. are preserved verbatim. Omit the blockquote (no `--summary` flag) to keep the pre-existing Keep-a-Changelog shape.
128
+
129
+ ⊗ Hand-write a different one-line narrative for each downstream surface (CHANGELOG / GitHub release / Slack) -- author once via `--summary` and let the pipeline propagate.
130
+
131
+ ## Entry Format
132
+
133
+ ~ Each change is a concise bullet point:
134
+
135
+ ```markdown
136
+ ### Added
137
+ - Dark mode support for web UI
138
+ - Export to CSV functionality in reports
139
+ ```
140
+
141
+ ~ Start each entry with a verb (Added, Fixed, Changed, etc. implied by section).
142
+
143
+ ! Keep entries user-focused, not implementation-focused.
144
+
145
+ **Good examples:**
146
+ - "Added dark mode toggle in settings"
147
+ - "Fixed crash when opening large files"
148
+ - "Removed deprecated `--legacy` flag"
149
+ - "Bumped `black` to 26.3.1 (framework tooling update)"
150
+
151
+ **Bad examples:**
152
+ - "Refactored authentication module" (internal, not user-visible)
153
+ - "Fixed typo in README" (documentation, minor)
154
+ - "Updated ESLint to v8" (dev CI tooling, no impact on framework users)
155
+
156
+ ## Unreleased Section
157
+
158
+ ! Maintain an `[Unreleased]` section at the top.
159
+
160
+ ~ Add notable changes to `[Unreleased]` as they're developed.
161
+
162
+ ! Move items from `[Unreleased]` to versioned section during release.
163
+
164
+ ## Breaking Changes
165
+
166
+ ! Clearly mark breaking changes:
167
+
168
+ ```markdown
169
+ ## [2.0.0] - 2024-02-15
170
+
171
+ ### Changed
172
+ - **BREAKING**: Renamed `--output` flag to `--file`
173
+ - **BREAKING**: Removed support for Python 3.8
174
+ ```
175
+
176
+ ~ Provide migration guidance for breaking changes:
177
+
178
+ ```markdown
179
+ ### Changed
180
+ - **BREAKING**: API endpoint `/api/v1/users` moved to `/api/v2/users`
181
+ - Migration: Update all API calls to use `/api/v2/users`
182
+ - Old endpoint will be removed in v3.0.0
183
+ ```
184
+
185
+ ## Links
186
+
187
+ ~ Include comparison links at bottom:
188
+
189
+ ```markdown
190
+ [Unreleased]: https://github.com/user/repo/compare/v1.0.0...HEAD
191
+ [1.0.0]: https://github.com/user/repo/releases/tag/v1.0.0
192
+ ```
193
+
194
+ ! Update links when adding new versions.
195
+
196
+ ## Examples
197
+
198
+ ### Minimal Release
199
+
200
+ ```markdown
201
+ ## [1.0.1] - 2024-01-20
202
+
203
+ ### Fixed
204
+ - Crash when opening files larger than 10MB
205
+ - Incorrect timezone display in logs
206
+ ```
207
+
208
+ ### Feature Release
209
+
210
+ ```markdown
211
+ ## [1.1.0] - 2024-02-01
212
+
213
+ ### Added
214
+ - Dark mode support
215
+ - Export data to CSV format
216
+ - Keyboard shortcuts for common actions
217
+
218
+ ### Fixed
219
+ - Memory leak in background sync
220
+ - Incorrect sorting in dashboard
221
+ ```
222
+
223
+ ### Breaking Changes Release
224
+
225
+ ```markdown
226
+ ## [2.0.0] - 2024-03-01
227
+
228
+ ### Changed
229
+ - **BREAKING**: Removed `--legacy` flag (use `--format=legacy` instead)
230
+ - **BREAKING**: Minimum Node.js version now 18.x
231
+ - Migration: Upgrade Node.js to 18.x or later
232
+
233
+ ### Added
234
+ - New plugin system for extensibility
235
+ - Built-in support for PostgreSQL 15
236
+
237
+ ### Removed
238
+ - Support for deprecated config file format (`.oldrc`)
239
+ ```
240
+
241
+ ## Release Process
242
+
243
+ ! Follow these steps in order when cutting a release:
244
+
245
+ 1. ! Rename `## [Unreleased]` to `## [X.Y.Z] - YYYY-MM-DD` (add today's release date)
246
+ 2. ! Add a fresh `## [Unreleased]` section above the new version
247
+ 3. ! Add link reference at bottom: `[X.Y.Z]: https://github.com/deftai/directive/releases/tag/vX.Y.Z`
248
+ 4. ! Update comparison link: `[Unreleased]: https://github.com/deftai/directive/compare/vX.Y.Z...HEAD`
249
+ 5. ! Commit: `chore: release vX.Y.Z`
250
+ 6. ! Open a PR for the release commit and merge to `master`
251
+ 7. ! After merge, tag locally: `git tag -a vX.Y.Z -m "Release vX.Y.Z"`
252
+ 8. ! Push the tag: `git push origin vX.Y.Z` (triggers release workflow)
253
+ 9. ~ Verify GitHub Actions builds and publishes release artifacts
254
+
255
+ ⊗ Tag without a corresponding changelog entry.
256
+ ⊗ Write a versioned changelog entry without tagging.
257
+
258
+ ## Compliance
259
+
260
+ - ! Maintain `CHANGELOG.md` in project root
261
+ - ! Update `[Unreleased]` on every PR; rename to versioned entry only at release
262
+ - ! Use Keep a Changelog format with exact section names
263
+ - ! Include user-facing changes and framework-level changes (repo structure, tooling, docs) that affect developers who use the framework directly
264
+ - ! Use semantic versioning for release numbers
265
+ - ! Mark breaking changes clearly
266
+ - ! Write entries from user perspective, not developer perspective
267
+ - ~ Provide migration guidance for breaking changes
268
+ - ~ Keep entries concise (1-2 lines per change)
269
+
270
+ ---
271
+
272
+ **See also**:
273
+ - [Keep a Changelog 1.0.0](https://keepachangelog.com/en/1.0.0/) - Full specification
274
+ - [versioning.md](../meta/versioning.md) - Semantic versioning standards
275
+ - [git.md](./git.md) - Git workflow and tagging
276
+ - [github.md](./github.md) - GitHub releases
package/scm/git.md ADDED
@@ -0,0 +1,139 @@
1
+ # Git Standards
2
+
3
+ Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
4
+
5
+ **⚠️ See also**: [main.md](../../main.md) | [PROJECT.md](../../PROJECT.md) | [github.md](../scm/github.md)
6
+
7
+ **Stack**: git 2.30+, Conventional Commits, `git --no-pager`, task-based workflows
8
+
9
+ ## Standards
10
+
11
+ **Commits**: ! use Conventional Commits format: `type(scope): description`
12
+ **Changelog**: ! follow [Keep a Changelog](./changelog.md) format
13
+ **Versioning**: ~ follow [Semantic Versioning](../meta/versioning.md)
14
+ **Safety**: ⊗ use `git reset --hard` or force-push without explicit permission
15
+ **Workflow**: ! make small, reversible changes; ⊗ introduce silent breaking behavior
16
+ **History**: ~ maintain linear history; ~ rebase over merge for feature branches (with permission)
17
+ **Branches**: ~ use descriptive names: `feat/feature-name`, `fix/bug-name`, `refactor/scope`
18
+
19
+ ## Commit Types
20
+
21
+ **Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `perf`, `ci`, `build`, `revert`
22
+
23
+ ```bash
24
+ feat(auth): add JWT token refresh mechanism
25
+ fix(api): handle null response in user endpoint
26
+ docs(readme): update installation instructions
27
+ refactor(db): extract connection pool logic
28
+ test(parser): add edge cases for malformed input
29
+ chore(deps): upgrade golang.org/x/crypto to v0.17
30
+ ```
31
+
32
+ **Format**:
33
+
34
+ - **type(scope)**: ! include type; ~ include scope
35
+ - **description**: ! be lowercase, no period, imperative mood ("add" not "added")
36
+ - **body**: ? be included; ~ wrap at 72 chars if present
37
+ - **footer**: ? include `BREAKING CHANGE:` or `Closes #123`
38
+
39
+ ## Workflow Best Practices
40
+
41
+ **Before committing**:
42
+ 1. ! Review changes with `git diff` and `git diff --cached`
43
+ 2. ! Run `task check` (MUST run pre-commit checks)
44
+ 3. ! Use interactive staging (`git add -p`) for complex changes
45
+ 4. ! Write descriptive commit messages following Conventional Commits
46
+
47
+ **Branching**:
48
+ - ~ Use descriptive branch names: `feat/feature-name`, `fix/bug-name`
49
+ - ~ Create feature branches from latest `main`
50
+ - ~ Delete branches after merge
51
+
52
+ **Syncing**:
53
+ - ~ Use `git pull --rebase` to maintain linear history
54
+ - ! Always use `git --no-pager` for scripted/programmatic operations
55
+ - ~ Keep feature branches up to date with `main`
56
+
57
+ ## .gitignore Patterns
58
+
59
+ ```gitignore
60
+ # Dependencies
61
+ node_modules/
62
+ vendor/
63
+ .venv/
64
+ __pycache__/
65
+
66
+ # Build outputs
67
+ dist/
68
+ build/
69
+ *.o
70
+ *.so
71
+ *.dylib
72
+
73
+ # IDE
74
+ .idea/
75
+ .vscode/
76
+ *.swp
77
+ *.swo
78
+ .DS_Store
79
+
80
+ # Secrets (CRITICAL)
81
+ secrets/
82
+ *.env
83
+ *.pem
84
+ *.key
85
+ .envrc
86
+
87
+ # Generated
88
+ coverage/
89
+ htmlcov/
90
+ *.log
91
+ .task/
92
+
93
+ # OS
94
+ Thumbs.db
95
+ ```
96
+
97
+ ## Safety Rules
98
+
99
+ **MUST NOT do without explicit permission**:
100
+
101
+ - `git reset --hard` - destroys uncommitted work
102
+ - `git push --force` - rewrites published history
103
+ - `git rebase` on published branches
104
+ - `git clean -fd` - deletes untracked files
105
+
106
+ **Always safe (MAY use freely)**:
107
+
108
+ - `git revert` - creates new commit undoing changes
109
+ - `git restore` - discards unstaged changes (affects working tree only)
110
+ - `git restore --staged` - unstages files
111
+ - `git stash` - temporarily saves work
112
+
113
+ **SHOULD prefer**:
114
+
115
+ - Small commits over large ones
116
+ - Descriptive commit messages over terse ones
117
+ - `--force-with-lease` over `--force` (if force push needed)
118
+ - New commits over history rewriting
119
+ - Temp branches for experiments
120
+
121
+
122
+ ## Changelog & Versioning
123
+
124
+ ! Maintain CHANGELOG.md following [Keep a Changelog](./changelog.md) format
125
+ ! Use [Semantic Versioning](../meta/versioning.md) for releases:
126
+ - **MAJOR** (X.0.0): Breaking changes
127
+ - **MINOR** (0.X.0): New features (backward compatible)
128
+ - **PATCH** (0.0.X): Bug fixes (backward compatible)
129
+
130
+ ## Compliance
131
+
132
+ - ! Use Conventional Commits for all commits: `type(scope): description`
133
+ - ! Maintain CHANGELOG.md following Keep a Changelog format
134
+ - ! Use Semantic Versioning for releases
135
+ - ⊗ Force-push or `reset --hard` without explicit permission
136
+ - ! Run `task check` before committing
137
+ - ! Use `git --no-pager` for programmatic/scripted operations
138
+ - ! Keep secrets in `secrets/` dir; ⊗ commit them
139
+ - ~ Prefer safe alternatives (`revert`, temp branches) over history rewriting