devflow-kit 2.4.0 → 2.5.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.
- package/CHANGELOG.md +156 -0
- package/README.md +86 -18
- package/dist/agents/git.md +824 -0
- package/dist/cli/commands/agents.js +6 -1
- package/dist/cli/commands/attribution-prompts.js +1 -1
- package/dist/cli/commands/compliance-prompts.js +1 -1
- package/dist/cli/commands/compliance.js +23 -1
- package/dist/cli/commands/init-seed.js +24 -26
- package/dist/cli/commands/init.js +502 -71
- package/dist/cli/commands/install-report.js +205 -0
- package/dist/cli/commands/knowledge/index.js +2 -2
- package/dist/cli/commands/knowledge/toggle.js +27 -37
- package/dist/cli/commands/learning.js +37 -30
- package/dist/cli/commands/memory.js +79 -69
- package/dist/cli/commands/prompt-io.js +4 -4
- package/dist/cli/commands/security.js +76 -16
- package/dist/cli/commands/skills.js +53 -7
- package/dist/cli/commands/tracker-prompts.js +145 -0
- package/dist/cli/commands/tracker.js +405 -0
- package/dist/cli/commands/uninstall.js +211 -65
- package/dist/cli.js +2 -0
- package/dist/commands/bug-analysis.md +22 -4
- package/dist/commands/code-review.md +44 -15
- package/dist/commands/debug.md +20 -6
- package/dist/commands/dynamic-build.md +289 -67
- package/dist/commands/dynamic-plan.md +60 -21
- package/dist/commands/dynamic-profile.md +1 -1
- package/dist/commands/dynamic-tickets.md +58 -8
- package/dist/commands/explore.md +2 -2
- package/dist/commands/implement.md +241 -53
- package/dist/commands/plan.md +88 -17
- package/dist/commands/release.md +64 -17
- package/dist/commands/resolve.md +138 -58
- package/dist/commands/self-review.md +2 -2
- package/dist/core/agent-models.js +55 -12
- package/dist/core/assets.js +58 -2
- package/dist/core/evidence-policy.js +147 -0
- package/dist/core/feature-config.js +130 -64
- package/dist/core/feature-switch.js +112 -0
- package/dist/core/flags.js +4 -4
- package/dist/core/manifest.js +33 -7
- package/dist/core/mds-variants.js +861 -0
- package/dist/core/model-discovery.js +12 -1
- package/dist/core/plugins.js +357 -9
- package/dist/core/project-paths.js +1 -1
- package/dist/core/proxy-log.js +8 -6
- package/dist/core/proxy-state.js +11 -8
- package/dist/core/reference-sweep.js +136 -0
- package/dist/core/tracker.js +407 -0
- package/dist/skills/git/references/decision-markers.md +19 -0
- package/dist/skills/git/references/learn-conventions.md +56 -0
- package/dist/skills/git/references/pr/check-ci-status.md +14 -0
- package/dist/skills/git/references/pr/check-merge-readiness.md +28 -0
- package/dist/skills/git/references/pr/ensure-pr-ready.md +24 -0
- package/dist/skills/git/references/pr/fetch-review-threads.md +22 -0
- package/dist/skills/git/references/pr/post-resolution-summary.md +40 -0
- package/dist/skills/git/references/pr/post-review-summary.md +42 -0
- package/dist/skills/git/references/pr/resolve-review-threads.md +35 -0
- package/dist/skills/git/references/pr/update-pr-evidence.md +14 -0
- package/dist/skills/git/references/pr/validate-branch.md +18 -0
- package/dist/skills/git/references/publication-gate.md +13 -0
- package/dist/skills/git/references/tracker/_mcp.md +153 -0
- package/dist/skills/git/references/tracker/github/associate-release.md +18 -0
- package/dist/skills/git/references/tracker/github/backlink-shipped-issues.md +40 -0
- package/dist/skills/git/references/tracker/github/create-release.md +11 -0
- package/dist/skills/git/references/tracker/github/ensure-pr-ready.md +16 -0
- package/dist/skills/git/references/tracker/github/ensure-traceable-issue.md +69 -0
- package/dist/skills/git/references/tracker/github/fetch-issue.md +32 -0
- package/dist/skills/git/references/tracker/github/fetch-issues-batch.md +17 -0
- package/dist/skills/git/references/tracker/github/gather-release-evidence.md +19 -0
- package/dist/skills/git/references/tracker/github/manage-debt.md +101 -0
- package/dist/skills/git/references/tracker/github/post-wave-report.md +28 -0
- package/dist/skills/git/references/tracker/github/setup-task.md +26 -0
- package/dist/skills/git/references/tracker/jira/associate-release.md +18 -0
- package/dist/skills/git/references/tracker/jira/backlink-shipped-issues.md +49 -0
- package/dist/skills/git/references/tracker/jira/create-release.md +17 -0
- package/dist/skills/git/references/tracker/jira/ensure-pr-ready.md +22 -0
- package/dist/skills/git/references/tracker/jira/ensure-traceable-issue.md +53 -0
- package/dist/skills/git/references/tracker/jira/fetch-issue.md +14 -0
- package/dist/skills/git/references/tracker/jira/fetch-issues-batch.md +15 -0
- package/dist/skills/git/references/tracker/jira/gather-release-evidence.md +18 -0
- package/dist/skills/git/references/tracker/jira/manage-debt.md +37 -0
- package/dist/skills/git/references/tracker/jira/post-wave-report.md +33 -0
- package/dist/skills/git/references/tracker/jira/setup-task.md +31 -0
- package/dist/skills/git/references/tracker/linear/associate-release.md +18 -0
- package/dist/skills/git/references/tracker/linear/backlink-shipped-issues.md +53 -0
- package/dist/skills/git/references/tracker/linear/create-release.md +17 -0
- package/dist/skills/git/references/tracker/linear/ensure-pr-ready.md +22 -0
- package/dist/skills/git/references/tracker/linear/ensure-traceable-issue.md +53 -0
- package/dist/skills/git/references/tracker/linear/fetch-issue.md +14 -0
- package/dist/skills/git/references/tracker/linear/fetch-issues-batch.md +15 -0
- package/dist/skills/git/references/tracker/linear/gather-release-evidence.md +18 -0
- package/dist/skills/git/references/tracker/linear/manage-debt.md +37 -0
- package/dist/skills/git/references/tracker/linear/post-wave-report.md +33 -0
- package/dist/skills/git/references/tracker/linear/setup-task.md +32 -0
- package/dist/skills/git/references/trust-rule.md +7 -0
- package/dist/targets/claude-code/installer.js +1213 -31
- package/dist/targets/claude-code/legacy.js +5 -0
- package/dist/targets/claude-code/post-install.js +196 -74
- package/dist/targets/claude-code/tracker-install.js +161 -0
- package/package.json +4 -3
- package/src/assets/agents/code.md +42 -4
- package/src/assets/agents/design.md +1 -1
- package/src/assets/agents/git.mds +827 -0
- package/src/assets/agents/knowledge.md +1 -1
- package/src/assets/agents/learning.md +11 -0
- package/src/assets/agents/synthesize.md +1 -1
- package/src/assets/agents/test.md +16 -5
- package/src/assets/agents/tracker.md +467 -0
- package/src/assets/agents/validate.md +7 -5
- package/src/assets/commands/_partials/_engine.mds +11 -9
- package/src/assets/commands/_partials/_evidence_policy.mds +30 -0
- package/src/assets/commands/_partials/_knowledge.mds +2 -2
- package/src/assets/commands/_partials/_plan_contract.mds +22 -7
- package/src/assets/commands/_partials/_preamble.mds +1 -1
- package/src/assets/commands/_partials/_publication.mds +3 -1
- package/src/assets/commands/_partials/_ticket_template.mds +3 -2
- package/src/assets/commands/_partials/_tracker.mds +18 -0
- package/src/assets/commands/_partials/_wave.mds +16 -10
- package/src/assets/commands/bug-analysis.mds +15 -5
- package/src/assets/commands/code-review.mds +34 -14
- package/src/assets/commands/debug.mds +11 -4
- package/src/assets/commands/dynamic-build.mds +227 -41
- package/src/assets/commands/dynamic-plan.mds +35 -13
- package/src/assets/commands/dynamic-tickets.mds +47 -5
- package/src/assets/commands/implement.mds +206 -52
- package/src/assets/commands/plan.mds +70 -17
- package/src/assets/commands/release.md +64 -17
- package/src/assets/commands/resolve.mds +126 -56
- package/src/assets/mds/git/_pr.mds +331 -0
- package/src/assets/mds/git/_references.mds +135 -0
- package/src/assets/mds/tracker/_common.mds +156 -0
- package/src/assets/mds/tracker/_github.mds +472 -0
- package/src/assets/mds/tracker/_jira.mds +407 -0
- package/src/assets/mds/tracker/_linear.mds +449 -0
- package/src/assets/mds/tracker/_mcp.mds +299 -0
- package/src/assets/scripts/hooks/assets/orchestrator-charter.md +5 -8
- package/src/assets/scripts/hooks/background-memory-update +14 -9
- package/src/assets/scripts/hooks/capture-prompt +6 -2
- package/src/assets/scripts/hooks/capture-question +6 -2
- package/src/assets/scripts/hooks/capture-turn +6 -2
- package/src/assets/scripts/hooks/ensure-devflow-init +1 -1
- package/src/assets/scripts/hooks/ensure-root-gitignore +161 -60
- package/src/assets/scripts/hooks/hook-log-init +3 -1
- package/src/assets/scripts/hooks/json-helper.cjs +223 -5
- package/src/assets/scripts/hooks/lib/project-paths.cjs +1 -1
- package/src/assets/scripts/hooks/memory-worker +15 -8
- package/src/assets/scripts/hooks/pre-compact-memory +12 -8
- package/src/assets/scripts/hooks/preamble +1 -4
- package/src/assets/scripts/hooks/queue-append +68 -24
- package/src/assets/scripts/hooks/session-start-context +355 -8
- package/src/assets/scripts/hooks/session-start-memory +12 -8
- package/src/assets/scripts/pr-evidence.cjs +1961 -0
- package/src/assets/scripts/redact-secrets.cjs +490 -62
- package/src/assets/scripts/release-trace.cjs +1143 -0
- package/src/assets/scripts/resolve-evidence-policy.cjs +1065 -0
- package/src/assets/scripts/verify-evidence.cjs +1822 -0
- package/src/assets/skills/compliance/SKILL.md +2 -0
- package/src/assets/skills/docs-framework/SKILL.md +5 -3
- package/src/assets/skills/git/SKILL.md +8 -78
- package/src/assets/skills/git/references/github-api.md +179 -141
- package/src/assets/skills/git/references/patterns.md +11 -6
- package/src/assets/skills/review-methodology/SKILL.md +1 -1
- package/src/assets/skills/review-methodology/references/patterns.md +6 -61
- package/src/assets/skills/review-methodology/references/violations.md +14 -22
- package/src/assets/agents/git.md +0 -938
package/dist/core/manifest.js
CHANGED
|
@@ -3,6 +3,7 @@ import * as path from 'path';
|
|
|
3
3
|
import { LEGACY_PLUGIN_NAMES, DELETED_PLUGIN_NAMES } from './plugins.js';
|
|
4
4
|
import { VIEW_MODES, migrateLegacyFlagsToRecord, sanitizeFlagsRecord, } from './flags.js';
|
|
5
5
|
import { normalizeComplianceFeature } from './compliance.js';
|
|
6
|
+
import { normalizeTrackerFeature } from './tracker.js';
|
|
6
7
|
import { writeFileAtomicExclusive } from './fs-atomic.js';
|
|
7
8
|
/**
|
|
8
9
|
* Parse features.flags across the three on-disk shapes; reports whether a heal is owed.
|
|
@@ -54,13 +55,14 @@ function parseManifestFlags(features, knownFlags) {
|
|
|
54
55
|
* Read and parse the manifest file. Returns null if missing or corrupt.
|
|
55
56
|
*
|
|
56
57
|
* Self-heals the following on-disk inconsistencies (applies ADR-014):
|
|
57
|
-
* - features.kb → features.knowledge rename
|
|
58
|
-
* - features.decisions → features.learning rename
|
|
58
|
+
* - features.kb → features.knowledge rename (both absent → true, D-FEATURES-ABSENT-ON)
|
|
59
|
+
* - features.decisions → features.learning rename (both absent → true, D-FEATURES-ABSENT-ON)
|
|
59
60
|
* - features.flags as string[] → FlagsRecord (via migrateLegacyFlagsToRecord)
|
|
60
61
|
* - features.viewMode folded into flags['view-mode'] and stripped from result
|
|
61
62
|
* - features.knownFlags stripped from result (folded into FlagsRecord key-presence)
|
|
62
63
|
* - features.proxy absent → false
|
|
63
64
|
* - features.compliance absent/malformed → {enabled:false, frameworks:[]}
|
|
65
|
+
* - features.tracker absent/malformed → {provider:'github'}
|
|
64
66
|
*
|
|
65
67
|
* D39: heal-write failure returns the migrated in-memory manifest (not null).
|
|
66
68
|
* The on-disk format remains unhealed; next read triggers another attempt.
|
|
@@ -82,15 +84,33 @@ export async function readManifest(devflowDir) {
|
|
|
82
84
|
typeof data.updatedAt !== 'string') {
|
|
83
85
|
return null;
|
|
84
86
|
}
|
|
85
|
-
//
|
|
87
|
+
// D-FEATURES-ABSENT-ON (a sub-decision of D-FEATURES-MACHINE-WIDE,
|
|
88
|
+
// src/core/feature-switch.ts): knowledge and learning are machine-wide
|
|
89
|
+
// switches, and every runtime gate — queue_read_gates in the hooks,
|
|
90
|
+
// isMachineFeatureOn in the CLI, the knowledge write-back prose gate — reads
|
|
91
|
+
// an ABSENT key as ON. This reader must agree: init seeds from it and every
|
|
92
|
+
// syncManifestFeature toggle writes its result back, so a `false` default
|
|
93
|
+
// here would persist "off" for a feature the runtime is running — a plain
|
|
94
|
+
// re-init or `devflow hud --enable` on an older manifest silently switching
|
|
95
|
+
// it off machine-wide. Explicit booleans (and their legacy names) are kept
|
|
96
|
+
// as they are. memory needs no default: it is in the hard-null set above,
|
|
97
|
+
// so a manifest without it reads as no prior install and init seeds
|
|
98
|
+
// FEATURE_DEFAULTS.memory (true).
|
|
99
|
+
//
|
|
100
|
+
// Self-heal: rename features.kb → features.knowledge on disk.
|
|
101
|
+
// Coalesce: features.knowledge wins; fall back to features.kb; default ON.
|
|
102
|
+
// D-KNOWLEDGE-LEGACY-KB: isMachineFeatureOn applies this exact precedence,
|
|
103
|
+
// so the legacy key is honoured before the heal lands.
|
|
86
104
|
const knowledge = typeof features.knowledge === 'boolean' ? features.knowledge
|
|
87
105
|
: typeof features.kb === 'boolean' ? features.kb
|
|
88
|
-
:
|
|
89
|
-
// Self-heal: rename features.decisions → features.learning on disk
|
|
90
|
-
// Coalesce: features.learning wins; fall back to features.decisions; default
|
|
106
|
+
: true;
|
|
107
|
+
// Self-heal: rename features.decisions → features.learning on disk (ADR-011).
|
|
108
|
+
// Coalesce: features.learning wins; fall back to features.decisions; default ON.
|
|
109
|
+
// D-LEARNING-LEGACY-DECISIONS: isMachineFeatureOn and queue_read_gates apply
|
|
110
|
+
// this exact precedence, so the legacy key is honoured before the heal lands.
|
|
91
111
|
const learning = typeof features.learning === 'boolean' ? features.learning
|
|
92
112
|
: typeof features.decisions === 'boolean' ? features.decisions
|
|
93
|
-
:
|
|
113
|
+
: true;
|
|
94
114
|
// Self-heal: non-string-array or absent knownFlags/knownPlugins → undefined (never partial/garbage)
|
|
95
115
|
const asStringArray = (val) => Array.isArray(val) && val.every(e => typeof e === 'string')
|
|
96
116
|
? val
|
|
@@ -138,6 +158,12 @@ export async function readManifest(devflowDir) {
|
|
|
138
158
|
proxy: typeof features.proxy === 'boolean' ? features.proxy : false,
|
|
139
159
|
// Self-heal: absent/malformed compliance → {enabled:false, frameworks:[]}
|
|
140
160
|
compliance: normalizeComplianceFeature(features.compliance),
|
|
161
|
+
// Self-heal: absent/malformed/unknown tracker → {provider:'github'} (AC-3.21).
|
|
162
|
+
// Deliberately NOT in the hard-null set above — see the field's doc comment.
|
|
163
|
+
// Healing here is silent and emits no DEGRADED: that is the correct
|
|
164
|
+
// ADR-014 behaviour, and a different condition from a per-repo config
|
|
165
|
+
// value outside the domain (which does emit `unknown tracker provider`).
|
|
166
|
+
tracker: normalizeTrackerFeature(features.tracker),
|
|
141
167
|
},
|
|
142
168
|
installedAt: data.installedAt,
|
|
143
169
|
updatedAt: data.updatedAt,
|