@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.
- package/.agents/skills/deft/SKILL.md +6 -0
- package/.agents/skills/deft-directive-article-review/SKILL.md +11 -0
- package/.agents/skills/deft-directive-build/SKILL.md +10 -0
- package/.agents/skills/deft-directive-cost/SKILL.md +12 -0
- package/.agents/skills/deft-directive-debug/SKILL.md +13 -0
- package/.agents/skills/deft-directive-gh-arch/SKILL.md +11 -0
- package/.agents/skills/deft-directive-gh-slice/SKILL.md +10 -0
- package/.agents/skills/deft-directive-glossary/SKILL.md +10 -0
- package/.agents/skills/deft-directive-interview/SKILL.md +9 -0
- package/.agents/skills/deft-directive-pre-pr/SKILL.md +9 -0
- package/.agents/skills/deft-directive-refinement/SKILL.md +10 -0
- package/.agents/skills/deft-directive-release/SKILL.md +12 -0
- package/.agents/skills/deft-directive-review-cycle/SKILL.md +10 -0
- package/.agents/skills/deft-directive-setup/SKILL.md +10 -0
- package/.agents/skills/deft-directive-swarm/SKILL.md +10 -0
- package/.agents/skills/deft-directive-sync/SKILL.md +9 -0
- package/.agents/skills/deft-directive-triage/SKILL.md +9 -0
- package/.agents/skills/deft-directive-write-skill/SKILL.md +9 -0
- package/LICENSE.md +22 -0
- package/QUICK-START.md +167 -0
- package/UPGRADING.md +517 -0
- package/coding/build-output.md +28 -0
- package/coding/coding.md +235 -0
- package/coding/debugging.md +110 -0
- package/coding/holzmann.md +96 -0
- package/coding/hygiene.md +127 -0
- package/coding/security.md +158 -0
- package/coding/testing.md +162 -0
- package/coding/toolchain.md +44 -0
- package/commands.md +300 -0
- package/context/context.md +57 -0
- package/context/deterministic-split.md +67 -0
- package/context/examples.md +26 -0
- package/context/fractal-summaries.md +69 -0
- package/context/long-horizon.md +46 -0
- package/context/spec-deltas.md +177 -0
- package/context/tool-design.md +34 -0
- package/context/working-memory.md +62 -0
- package/contracts/boundary-maps.md +65 -0
- package/contracts/deterministic-questions.md +59 -0
- package/contracts/hierarchy.md +77 -0
- package/conventions/content-manifest.json +399 -0
- package/conventions/machine-generated-banner.md +130 -0
- package/conventions/references.md +120 -0
- package/conventions/rule-ownership.json +382 -0
- package/conventions/task-caching.md +43 -0
- package/conventions/vbrief-filenames.md +70 -0
- package/deployments/README.md +37 -0
- package/deployments/agentuity/README.md +138 -0
- package/deployments/agentuity/via-cli.md +380 -0
- package/deployments/agentuity/via-cloud.md +425 -0
- package/deployments/agentuity/via-github-actions.md +664 -0
- package/deployments/agentuity/via-gravity-network.md +606 -0
- package/deployments/agentuity/via-vpc.md +607 -0
- package/deployments/aws/README.md +38 -0
- package/deployments/aws/via-app-runner.md +612 -0
- package/deployments/aws/via-ecs-fargate.md +561 -0
- package/deployments/aws/via-elastic-beanstalk.md +628 -0
- package/deployments/aws/via-lambda.md +649 -0
- package/deployments/azure/README.md +37 -0
- package/deployments/azure/via-aks.md +390 -0
- package/deployments/azure/via-app-service.md +564 -0
- package/deployments/azure/via-container-apps.md +599 -0
- package/deployments/azure/via-functions.md +552 -0
- package/deployments/cloud-gov/README.md +63 -0
- package/deployments/cloud-gov/agents/compliance-docs.md +154 -0
- package/deployments/cloud-gov/agents.md +39 -0
- package/deployments/cloud-gov/cicd.md +64 -0
- package/deployments/cloud-gov/deployment.md +150 -0
- package/deployments/cloud-gov/logging.md +43 -0
- package/deployments/cloud-gov/manifest.md +121 -0
- package/deployments/cloud-gov/overview.md +58 -0
- package/deployments/cloud-gov/security.md +46 -0
- package/deployments/cloud-gov/services.md +72 -0
- package/deployments/cloud-gov/upstream/README.md +18 -0
- package/deployments/cloudflare/README.md +33 -0
- package/deployments/cloudflare/via-dashboard.md +83 -0
- package/deployments/cloudflare/via-git.md +90 -0
- package/deployments/cloudflare/via-github-actions.md +185 -0
- package/deployments/cloudflare/via-terraform.md +157 -0
- package/deployments/cloudflare/via-wrangler.md +165 -0
- package/deployments/fly-io/README.md +37 -0
- package/deployments/fly-io/via-dockerfile.md +648 -0
- package/deployments/fly-io/via-flyctl.md +653 -0
- package/deployments/fly-io/via-github-actions.md +695 -0
- package/deployments/fly-io/via-multi-region.md +598 -0
- package/deployments/google/README.md +34 -0
- package/deployments/google/via-app-engine.md +42 -0
- package/deployments/google/via-cloud-functions.md +23 -0
- package/deployments/google/via-cloud-run.md +330 -0
- package/deployments/google/via-gke.md +23 -0
- package/deployments/netlify/README.md +99 -0
- package/deployments/netlify/via-cli.md +17 -0
- package/deployments/netlify/via-functions.md +19 -0
- package/deployments/netlify/via-git.md +25 -0
- package/deployments/vercel/README.md +90 -0
- package/deployments/vercel/via-api.md +16 -0
- package/deployments/vercel/via-cli.md +17 -0
- package/deployments/vercel/via-git.md +24 -0
- package/docs/BROWNFIELD.md +179 -0
- package/docs/getting-started.md +137 -0
- package/docs/good-agents-md.md +137 -0
- package/events/README.md +89 -0
- package/events/event-record.schema.json +26 -0
- package/events/registry.json +166 -0
- package/events/registry.schema.json +71 -0
- package/glossary.md +145 -0
- package/incidents/README.md +81 -0
- package/incidents/_template.md +38 -0
- package/interfaces/cli.md +104 -0
- package/interfaces/rest.md +212 -0
- package/interfaces/tui.md +242 -0
- package/interfaces/web.md +123 -0
- package/languages/6502-DASM.md +132 -0
- package/languages/c.md +235 -0
- package/languages/commands.md +23 -0
- package/languages/cpp.md +132 -0
- package/languages/csharp.md +259 -0
- package/languages/dart.md +183 -0
- package/languages/delphi.md +218 -0
- package/languages/elixir.md +208 -0
- package/languages/go.md +78 -0
- package/languages/java.md +278 -0
- package/languages/javascript.md +163 -0
- package/languages/julia.md +175 -0
- package/languages/kotlin.md +193 -0
- package/languages/markdown.md +168 -0
- package/languages/mermaid.md +146 -0
- package/languages/officejs.md +392 -0
- package/languages/python.md +209 -0
- package/languages/r.md +163 -0
- package/languages/rust.md +216 -0
- package/languages/sql.md +216 -0
- package/languages/swift.md +153 -0
- package/languages/typescript.md +132 -0
- package/languages/vba.md +279 -0
- package/languages/vhdl.md +180 -0
- package/languages/visual-basic.md +151 -0
- package/languages/zig.md +196 -0
- package/meta/SOUL.md +27 -0
- package/meta/code-field.md +44 -0
- package/meta/morals.md +40 -0
- package/meta/philosophy.md +39 -0
- package/meta/project.md +49 -0
- package/meta/ralph.md +223 -0
- package/meta/security.md +80 -0
- package/meta/versioning.md +326 -0
- package/package.json +22 -0
- package/packs/lessons/lessons-pack-0.1.json +553 -0
- package/packs/patterns/patterns-pack-0.1.json +57 -0
- package/packs/rules/rules-pack-0.1.json +4767 -0
- package/packs/skills/skills-pack-0.1.json +262 -0
- package/packs/strategies/strategies-pack-0.1.json +167 -0
- package/packs/swarm-spec/swarm-spec-pack-0.1.json +17 -0
- package/patterns/executor-layer-credentials.md +227 -0
- package/patterns/llm-app.md +156 -0
- package/patterns/multi-agent.md +278 -0
- package/patterns/prompt-assembly-layer-ordering.md +154 -0
- package/patterns/role-as-overlay.md +179 -0
- package/platforms/2600.md +137 -0
- package/platforms/unity.md +329 -0
- package/references/composer-skill-porting.md +152 -0
- package/references/cost-models.md +163 -0
- package/references/ip-risk.md +246 -0
- package/references/plain-english-ux.md +275 -0
- package/resilience/context-pruning.md +67 -0
- package/resilience/continue-here.md +62 -0
- package/scm/changelog.md +276 -0
- package/scm/git.md +139 -0
- package/scm/github.md +265 -0
- package/secrets/.gitkeep +0 -0
- package/skills/deft-build/SKILL.md +20 -0
- package/skills/deft-directive-article-review/SKILL.md +156 -0
- package/skills/deft-directive-build/SKILL.md +302 -0
- package/skills/deft-directive-cost/SKILL.md +201 -0
- package/skills/deft-directive-debug/SKILL.md +140 -0
- package/skills/deft-directive-decompose/SKILL.md +96 -0
- package/skills/deft-directive-gh-arch/SKILL.md +160 -0
- package/skills/deft-directive-gh-slice/SKILL.md +199 -0
- package/skills/deft-directive-glossary/SKILL.md +118 -0
- package/skills/deft-directive-interview/SKILL.md +528 -0
- package/skills/deft-directive-pre-pr/SKILL.md +131 -0
- package/skills/deft-directive-probe/SKILL.md +127 -0
- package/skills/deft-directive-refinement/SKILL.md +403 -0
- package/skills/deft-directive-release/SKILL.md +266 -0
- package/skills/deft-directive-review-cycle/SKILL.md +401 -0
- package/skills/deft-directive-setup/SKILL.md +717 -0
- package/skills/deft-directive-swarm/SKILL.md +989 -0
- package/skills/deft-directive-sync/SKILL.md +288 -0
- package/skills/deft-directive-triage/SKILL.md +137 -0
- package/skills/deft-directive-write-skill/SKILL.md +169 -0
- package/skills/deft-interview/SKILL.md +16 -0
- package/skills/deft-pre-pr/SKILL.md +16 -0
- package/skills/deft-review-cycle/SKILL.md +16 -0
- package/skills/deft-roadmap-refresh/SKILL.md +16 -0
- package/skills/deft-setup/SKILL.md +20 -0
- package/skills/deft-swarm/SKILL.md +16 -0
- package/skills/deft-sync/SKILL.md +16 -0
- package/strategies/README.md +83 -0
- package/strategies/artifact-guards.md +85 -0
- package/strategies/bdd.md +115 -0
- package/strategies/brownfield.md +7 -0
- package/strategies/discuss.md +129 -0
- package/strategies/emit-hints.md +69 -0
- package/strategies/enterprise.md +193 -0
- package/strategies/interview.md +551 -0
- package/strategies/map.md +179 -0
- package/strategies/probe.md +151 -0
- package/strategies/rapid.md +155 -0
- package/strategies/research.md +155 -0
- package/strategies/roadmap.md +9 -0
- package/strategies/speckit.md +437 -0
- package/strategies/v0-20-contract.md +134 -0
- package/strategies/yolo.md +169 -0
- package/swarm/swarm.md +300 -0
- package/templates/COST-ESTIMATE.md +114 -0
- package/templates/PULL_REQUEST_TEMPLATE.md +35 -0
- package/templates/agent-prompt-preamble.md +409 -0
- package/templates/agents-entry.md +211 -0
- package/templates/agents-entry.placeholders.md +75 -0
- package/templates/embed.go +20 -0
- package/templates/embed_test.go +36 -0
- package/templates/make-spec-example.md +9 -0
- package/templates/make-spec.md +246 -0
- package/templates/project.md.template +52 -0
- package/templates/specification.md +1 -0
- package/templates/swarm-greptile-poller-prompt.md +556 -0
- package/templates/user.md.template +31 -0
- package/tools/RWLDL.md +80 -0
- package/tools/greptile.md +141 -0
- package/tools/installer.md +23 -0
- package/tools/taskfile-migration.md +32 -0
- package/tools/taskfile.md +185 -0
- package/tools/telemetry.md +285 -0
- package/vbrief/schemas/cache-meta.schema.json +137 -0
- package/vbrief/schemas/candidates.schema.json +130 -0
- package/vbrief/schemas/codebase-map.schema.json +213 -0
- package/vbrief/schemas/lessons-pack.schema.json +134 -0
- package/vbrief/schemas/patterns-pack.schema.json +84 -0
- package/vbrief/schemas/rules-pack.schema.json +105 -0
- package/vbrief/schemas/skills-pack.schema.json +94 -0
- package/vbrief/schemas/slices.schema.json +87 -0
- package/vbrief/schemas/strategies-pack.schema.json +89 -0
- package/vbrief/schemas/swarm-spec-pack.schema.json +84 -0
- package/vbrief/schemas/vbrief-core.schema.json +1022 -0
- package/vbrief/vbrief.md +684 -0
- package/verification/integration.md +76 -0
- package/verification/plan-checking.md +85 -0
- package/verification/uat.md +60 -0
- package/verification/verification.md +117 -0
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"description": "Rule Ownership Map (ROM): structural source of truth mapping each load-bearing framework rule to its owning file and section. Replaces the descriptive prose section removed from REFERENCES.md by the PR #401 trim. Every entry is enforced by scripts/rule_ownership_lint.py via tasks/verify.yml -> task check; drift between this map and the owner files fails CI. Authority values follow RFC2119 (MUST/SHOULD/MUST_NOT/SHOULD_NOT/AXIOM) with the additional 'lesson' value reserved for rules whose source of truth is a meta/lessons.md entry. See vBRIEF: vbrief/proposed/2026-04-27-635-rule-ownership-map-data-file-and-lint.vbrief.json. Refs #635 (epic), #642 (workflow umbrella), #634 (determinism-tier ladder T5/T6).",
|
|
4
|
+
"rules": [
|
|
5
|
+
{
|
|
6
|
+
"id": "coding-standards-modularity",
|
|
7
|
+
"text": "One responsibility per file/module",
|
|
8
|
+
"owner_file": "content/coding/coding.md",
|
|
9
|
+
"owner_section": "## Code Design",
|
|
10
|
+
"authority": "MUST",
|
|
11
|
+
"last_verified": "2026-04-28"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "coding-standards-contract-first",
|
|
15
|
+
"text": "Define interfaces/types/protocols before implementation",
|
|
16
|
+
"owner_file": "content/coding/coding.md",
|
|
17
|
+
"owner_section": "## Code Design",
|
|
18
|
+
"authority": "MUST",
|
|
19
|
+
"last_verified": "2026-04-28"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "coding-standards-error-handling-no-hide",
|
|
23
|
+
"text": "Empty catch/except/recover blocks that swallow errors silently",
|
|
24
|
+
"owner_file": "content/coding/coding.md",
|
|
25
|
+
"owner_section": "## Code Design",
|
|
26
|
+
"authority": "MUST_NOT",
|
|
27
|
+
"last_verified": "2026-04-28"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "coding-standards-quality-checks",
|
|
31
|
+
"text": "Run all relevant checks (lint, fmt, quality, build, test) before submitting changes",
|
|
32
|
+
"owner_file": "content/coding/coding.md",
|
|
33
|
+
"owner_section": "## Quality Standards",
|
|
34
|
+
"authority": "MUST",
|
|
35
|
+
"last_verified": "2026-04-28"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "codebase-hygiene-dead-code",
|
|
39
|
+
"text": "Commented-out code blocks committed to version control",
|
|
40
|
+
"owner_file": "content/coding/hygiene.md",
|
|
41
|
+
"owner_section": "## Dead Code Removal",
|
|
42
|
+
"authority": "MUST_NOT",
|
|
43
|
+
"last_verified": "2026-04-28"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "codebase-hygiene-circular-dependencies",
|
|
47
|
+
"text": "Circular imports between modules/packages",
|
|
48
|
+
"owner_file": "content/coding/hygiene.md",
|
|
49
|
+
"owner_section": "## Circular Dependencies",
|
|
50
|
+
"authority": "MUST_NOT",
|
|
51
|
+
"last_verified": "2026-04-28"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "codebase-hygiene-error-hiding",
|
|
55
|
+
"text": "Empty catch/except/recover blocks that swallow errors silently",
|
|
56
|
+
"owner_file": "content/coding/hygiene.md",
|
|
57
|
+
"owner_section": "## Error Handling: No Hiding",
|
|
58
|
+
"authority": "MUST_NOT",
|
|
59
|
+
"last_verified": "2026-04-28"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "codebase-hygiene-legacy-deprecated",
|
|
63
|
+
"text": "Parallel implementations: old approach and new approach coexisting",
|
|
64
|
+
"owner_file": "content/coding/hygiene.md",
|
|
65
|
+
"owner_section": "## Legacy and Deprecated Code",
|
|
66
|
+
"authority": "MUST_NOT",
|
|
67
|
+
"last_verified": "2026-04-28"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "codebase-hygiene-dry",
|
|
71
|
+
"text": "Extract shared abstractions when logic is duplicated across 2+ call sites",
|
|
72
|
+
"owner_file": "content/coding/hygiene.md",
|
|
73
|
+
"owner_section": "## DRY: Don't Repeat Yourself",
|
|
74
|
+
"authority": "SHOULD",
|
|
75
|
+
"last_verified": "2026-04-28"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "codebase-hygiene-comments-signal-vs-noise",
|
|
79
|
+
"text": "Comments should explain **why**, not **what**",
|
|
80
|
+
"owner_file": "content/coding/hygiene.md",
|
|
81
|
+
"owner_section": "## Comments: Signal vs. Noise",
|
|
82
|
+
"authority": "SHOULD",
|
|
83
|
+
"last_verified": "2026-04-28"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "testing-universal-coverage",
|
|
87
|
+
"text": "Achieve \u226585% coverage (overall + per-module/package/file)",
|
|
88
|
+
"owner_file": "content/coding/testing.md",
|
|
89
|
+
"owner_section": "## Universal Requirements",
|
|
90
|
+
"authority": "MUST",
|
|
91
|
+
"last_verified": "2026-04-28"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "testing-test-first-development",
|
|
95
|
+
"text": "Implementation is INCOMPLETE until tests written AND `task test:coverage` passes",
|
|
96
|
+
"owner_file": "content/coding/testing.md",
|
|
97
|
+
"owner_section": "## Test-First Development",
|
|
98
|
+
"authority": "MUST",
|
|
99
|
+
"last_verified": "2026-04-28"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "build-output-artifact-verification",
|
|
103
|
+
"text": "After running a custom build script, verify expected output files exist and are non-empty",
|
|
104
|
+
"owner_file": "content/coding/build-output.md",
|
|
105
|
+
"owner_section": "## Artifact Verification",
|
|
106
|
+
"authority": "MUST",
|
|
107
|
+
"last_verified": "2026-04-28"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "toolchain-pre-implementation-gate",
|
|
111
|
+
"text": "Before beginning implementation, verify all required toolchain components are installed and functional",
|
|
112
|
+
"owner_file": "content/coding/toolchain.md",
|
|
113
|
+
"owner_section": "## Pre-Implementation Gate",
|
|
114
|
+
"authority": "MUST",
|
|
115
|
+
"last_verified": "2026-04-28"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "verification-stub-detection",
|
|
119
|
+
"text": "Scan for incomplete implementations before marking done",
|
|
120
|
+
"owner_file": "content/verification/verification.md",
|
|
121
|
+
"owner_section": "## Stub Detection",
|
|
122
|
+
"authority": "MUST",
|
|
123
|
+
"last_verified": "2026-04-28"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "verification-legacy-deprecated-detection",
|
|
127
|
+
"text": "When reviewing or modifying any file, scan for legacy indicators",
|
|
128
|
+
"owner_file": "content/verification/verification.md",
|
|
129
|
+
"owner_section": "## Legacy and Deprecated Code Detection",
|
|
130
|
+
"authority": "SHOULD",
|
|
131
|
+
"last_verified": "2026-04-28"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "glossary-ubiquitous-language",
|
|
135
|
+
"text": "**Ubiquitous language** \u2014 The shared, precisely defined vocabulary",
|
|
136
|
+
"owner_file": "content/glossary.md",
|
|
137
|
+
"owner_section": "## Framework Design Terms",
|
|
138
|
+
"authority": "MUST",
|
|
139
|
+
"last_verified": "2026-04-28"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "glossary-rule-ownership-principle",
|
|
143
|
+
"text": "**Rule ownership** \u2014 The principle that each concept in directive has exactly one owning file",
|
|
144
|
+
"owner_file": "content/glossary.md",
|
|
145
|
+
"owner_section": "## Framework Design Terms",
|
|
146
|
+
"authority": "MUST",
|
|
147
|
+
"last_verified": "2026-04-28"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "glossary-work-decomposition-hierarchy",
|
|
151
|
+
"text": "Release \u2190 Shippable version (one or more features)",
|
|
152
|
+
"owner_file": "content/glossary.md",
|
|
153
|
+
"owner_section": "## Deft Work Decomposition Hierarchy",
|
|
154
|
+
"authority": "MUST",
|
|
155
|
+
"last_verified": "2026-04-28"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "scm-git-conventional-commits",
|
|
159
|
+
"text": "use Conventional Commits format: `type(scope): description`",
|
|
160
|
+
"owner_file": "content/scm/git.md",
|
|
161
|
+
"owner_section": "## Standards",
|
|
162
|
+
"authority": "MUST",
|
|
163
|
+
"last_verified": "2026-04-28"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "scm-git-safety-rules",
|
|
167
|
+
"text": "MUST NOT do without explicit permission",
|
|
168
|
+
"owner_file": "content/scm/git.md",
|
|
169
|
+
"owner_section": "## Safety Rules",
|
|
170
|
+
"authority": "MUST_NOT",
|
|
171
|
+
"last_verified": "2026-04-28"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "scm-github-pr-merge-strategy",
|
|
175
|
+
"text": "Use squash-merge as the default merge method",
|
|
176
|
+
"owner_file": "content/scm/github.md",
|
|
177
|
+
"owner_section": "## PR Workflow Conventions",
|
|
178
|
+
"authority": "MUST",
|
|
179
|
+
"last_verified": "2026-04-28"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "scm-github-post-merge-issue-verification",
|
|
183
|
+
"text": "After a PR is squash-merged, verify that all referenced issues were actually closed",
|
|
184
|
+
"owner_file": "content/scm/github.md",
|
|
185
|
+
"owner_section": "## Post-Merge Issue Verification",
|
|
186
|
+
"authority": "MUST",
|
|
187
|
+
"last_verified": "2026-04-28"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"id": "tools-taskfile-build-automation",
|
|
191
|
+
"text": "Use `task` for repeatable operations",
|
|
192
|
+
"owner_file": "content/tools/taskfile.md",
|
|
193
|
+
"owner_section": "## Task-Centric Workflow",
|
|
194
|
+
"authority": "MUST",
|
|
195
|
+
"last_verified": "2026-04-28"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "vbrief-lifecycle-folders",
|
|
199
|
+
"text": "Individual units of work (features, bugs, initiatives) live as scope vBRIEFs in five lifecycle folders",
|
|
200
|
+
"owner_file": "content/vbrief/vbrief.md",
|
|
201
|
+
"owner_section": "## File Taxonomy",
|
|
202
|
+
"authority": "MUST",
|
|
203
|
+
"last_verified": "2026-04-28"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"id": "vbrief-filename-convention",
|
|
207
|
+
"text": "Scope vBRIEF filenames MUST follow: `YYYY-MM-DD-descriptive-slug.vbrief.json`",
|
|
208
|
+
"owner_file": "content/vbrief/vbrief.md",
|
|
209
|
+
"owner_section": "## File Taxonomy",
|
|
210
|
+
"authority": "MUST",
|
|
211
|
+
"last_verified": "2026-04-28"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"id": "resilience-session-continuity",
|
|
215
|
+
"text": "Persist to `./vbrief/continue.vbrief.json` in vBRIEF format",
|
|
216
|
+
"owner_file": "content/resilience/continue-here.md",
|
|
217
|
+
"owner_section": "## Continue Checkpoint Contents",
|
|
218
|
+
"authority": "MUST",
|
|
219
|
+
"last_verified": "2026-04-28"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "context-engineering-write-strategy",
|
|
223
|
+
"text": "Externalize intermediate state so it doesn't consume context window",
|
|
224
|
+
"owner_file": "content/context/context.md",
|
|
225
|
+
"owner_section": "## Strategy 1: Write",
|
|
226
|
+
"authority": "SHOULD",
|
|
227
|
+
"last_verified": "2026-04-28"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"id": "swarm-explicit-context",
|
|
231
|
+
"text": "Never assume previous agent \"knew\" something implicit",
|
|
232
|
+
"owner_file": "content/swarm/swarm.md",
|
|
233
|
+
"owner_section": "## Communication Protocols",
|
|
234
|
+
"authority": "MUST",
|
|
235
|
+
"last_verified": "2026-04-28"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"id": "change-lifecycle-overview",
|
|
239
|
+
"text": "The active implementation is vBRIEF lifecycle first and Taskfile first",
|
|
240
|
+
"owner_file": "content/commands.md",
|
|
241
|
+
"owner_section": "## Overview",
|
|
242
|
+
"authority": "MUST",
|
|
243
|
+
"last_verified": "2026-06-17"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"id": "main-rule-authority-axiom",
|
|
247
|
+
"text": "Every rule MUST use the strongest applicable layer",
|
|
248
|
+
"owner_file": "main.md",
|
|
249
|
+
"owner_section": "## Rule Authority [AXIOM]",
|
|
250
|
+
"authority": "AXIOM",
|
|
251
|
+
"last_verified": "2026-04-28"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"id": "main-vbrief-persistence",
|
|
255
|
+
"text": "All vBRIEF files MUST be stored in `./vbrief/` or its lifecycle subfolders",
|
|
256
|
+
"owner_file": "main.md",
|
|
257
|
+
"owner_section": "## vBRIEF Persistence",
|
|
258
|
+
"authority": "MUST",
|
|
259
|
+
"last_verified": "2026-04-28"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"id": "agents-deft-alignment-confirmation",
|
|
263
|
+
"text": "confirm to the user that Deft Directive is active",
|
|
264
|
+
"owner_file": "AGENTS.md",
|
|
265
|
+
"owner_section": "### Deft Alignment Confirmation",
|
|
266
|
+
"authority": "MUST",
|
|
267
|
+
"last_verified": "2026-04-28"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"id": "agents-skill-completion-gate",
|
|
271
|
+
"text": "explicitly confirm skill exit and provide chaining instructions",
|
|
272
|
+
"owner_file": "AGENTS.md",
|
|
273
|
+
"owner_section": "## Skill Completion Gate",
|
|
274
|
+
"authority": "MUST",
|
|
275
|
+
"last_verified": "2026-04-28"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"id": "language-hygiene-python",
|
|
279
|
+
"text": "**Dead code:**",
|
|
280
|
+
"owner_file": "content/languages/python.md",
|
|
281
|
+
"owner_section": "## Hygiene",
|
|
282
|
+
"authority": "MUST",
|
|
283
|
+
"last_verified": "2026-04-28"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"id": "language-hygiene-go",
|
|
287
|
+
"text": "**Dead code:**",
|
|
288
|
+
"owner_file": "content/languages/go.md",
|
|
289
|
+
"owner_section": "## Hygiene",
|
|
290
|
+
"authority": "MUST",
|
|
291
|
+
"last_verified": "2026-04-28"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"id": "language-hygiene-typescript",
|
|
295
|
+
"text": "**Dead code:**",
|
|
296
|
+
"owner_file": "content/languages/typescript.md",
|
|
297
|
+
"owner_section": "## Hygiene",
|
|
298
|
+
"authority": "MUST",
|
|
299
|
+
"last_verified": "2026-04-28"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"id": "language-hygiene-javascript",
|
|
303
|
+
"text": "**Dead code:**",
|
|
304
|
+
"owner_file": "content/languages/javascript.md",
|
|
305
|
+
"owner_section": "## Hygiene",
|
|
306
|
+
"authority": "MUST",
|
|
307
|
+
"last_verified": "2026-04-28"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"id": "language-hygiene-rust",
|
|
311
|
+
"text": "**Dead code:**",
|
|
312
|
+
"owner_file": "content/languages/rust.md",
|
|
313
|
+
"owner_section": "## Hygiene",
|
|
314
|
+
"authority": "MUST",
|
|
315
|
+
"last_verified": "2026-04-28"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "language-hygiene-cpp",
|
|
319
|
+
"text": "**Dead code:**",
|
|
320
|
+
"owner_file": "content/languages/cpp.md",
|
|
321
|
+
"owner_section": "## Hygiene",
|
|
322
|
+
"authority": "MUST",
|
|
323
|
+
"last_verified": "2026-04-28"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"id": "language-hygiene-csharp",
|
|
327
|
+
"text": "**Dead code:**",
|
|
328
|
+
"owner_file": "content/languages/csharp.md",
|
|
329
|
+
"owner_section": "## Hygiene",
|
|
330
|
+
"authority": "MUST",
|
|
331
|
+
"last_verified": "2026-04-28"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"id": "language-hygiene-java",
|
|
335
|
+
"text": "**Dead code:**",
|
|
336
|
+
"owner_file": "content/languages/java.md",
|
|
337
|
+
"owner_section": "## Hygiene",
|
|
338
|
+
"authority": "MUST",
|
|
339
|
+
"last_verified": "2026-04-28"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"id": "language-hygiene-kotlin",
|
|
343
|
+
"text": "**Dead code:**",
|
|
344
|
+
"owner_file": "content/languages/kotlin.md",
|
|
345
|
+
"owner_section": "## Hygiene",
|
|
346
|
+
"authority": "MUST",
|
|
347
|
+
"last_verified": "2026-04-28"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"id": "language-hygiene-swift",
|
|
351
|
+
"text": "**Dead code:**",
|
|
352
|
+
"owner_file": "content/languages/swift.md",
|
|
353
|
+
"owner_section": "## Hygiene",
|
|
354
|
+
"authority": "MUST",
|
|
355
|
+
"last_verified": "2026-04-28"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"id": "language-hygiene-c",
|
|
359
|
+
"text": "**Dead code:**",
|
|
360
|
+
"owner_file": "content/languages/c.md",
|
|
361
|
+
"owner_section": "## Hygiene",
|
|
362
|
+
"authority": "MUST",
|
|
363
|
+
"last_verified": "2026-04-28"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"id": "lesson-toolchain-validation-gate",
|
|
367
|
+
"text": "Before beginning any implementation phase, MUST verify that the complete toolchain",
|
|
368
|
+
"owner_file": "meta/lessons.md",
|
|
369
|
+
"owner_section": "## Toolchain Validation Gate (2026-03)",
|
|
370
|
+
"authority": "lesson",
|
|
371
|
+
"last_verified": "2026-04-28"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"id": "lesson-build-script-output-validation",
|
|
375
|
+
"text": "When modifying a build script, MUST verify that expected output artifacts exist",
|
|
376
|
+
"owner_file": "meta/lessons.md",
|
|
377
|
+
"owner_section": "## Build Script Output Validation (2026-03)",
|
|
378
|
+
"authority": "lesson",
|
|
379
|
+
"last_verified": "2026-04-28"
|
|
380
|
+
}
|
|
381
|
+
]
|
|
382
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Task Caching Convention
|
|
2
|
+
|
|
3
|
+
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
4
|
+
|
|
5
|
+
**See also**: [main.md](../../main.md) | [tasks/prd.yml](../../tasks/prd.yml) | [tasks/scope.yml](../../tasks/scope.yml) | [tests/content/test_taskfile_caching.py](../../tests/content/test_taskfile_caching.py)
|
|
6
|
+
|
|
7
|
+
## Invariant
|
|
8
|
+
|
|
9
|
+
! Tasks in `deft/tasks/*.yml` that accept `{{.CLI_ARGS}}` containing user-facing recovery flags (any `--force`-like flag, or anything the script's error messages tell operators to pass) **MUST NOT** declare `sources:` or `generates:` keys.
|
|
10
|
+
|
|
11
|
+
⊗ Declaring `sources:` / `generates:` on a task that forwards `{{.CLI_ARGS}}` to a Python script.
|
|
12
|
+
|
|
13
|
+
## Why
|
|
14
|
+
|
|
15
|
+
When both `sources:` and `generates:` are declared and every `generates` file exists with an unchanged `sources` hash, go-task short-circuits and skips `cmds:` entirely. `CLI_ARGS` are never relayed because the command is never invoked. The script-level recovery flag therefore never reaches the script, and the operator hits a silent `"task: Task \"<name>\" is up to date"` exit 0 while following deft's own documented recovery instruction.
|
|
16
|
+
|
|
17
|
+
This is what broke `task prd:render -- --force` for every migrating consumer with a pre-existing `PRD.md` on `phase2/vbrief-cutover`: the `#539` refuse-to-overwrite safety check instructs operators to "Re-run with --force to overwrite", but the `prd:render` task short-circuited at the go-task cache layer before `cmds:` ran, so `prd_render.py` never saw `--force` (#574).
|
|
18
|
+
|
|
19
|
+
## Scope
|
|
20
|
+
|
|
21
|
+
The invariant applies specifically to tasks whose **command line forwards `{{.CLI_ARGS}}` to a dispatched Python script** (`uv run python ... {{.CLI_ARGS}}`). These tasks are the recovery-flag carriers and are the ones whose semantics break when go-task short-circuits.
|
|
22
|
+
|
|
23
|
+
Tasks that do not forward `{{.CLI_ARGS}}` (e.g. pure file-copy / archive-extraction pipelines like `deployments:cloudgov:export`) are **not** subject to this invariant -- their caching behavior is correct because they do not carry user-recovery semantics.
|
|
24
|
+
|
|
25
|
+
## Exception discipline
|
|
26
|
+
|
|
27
|
+
~ When a task is genuinely cache-worthy (e.g. an expensive compile, a large archive extraction) AND does NOT accept `CLI_ARGS` recovery flags, `sources:` / `generates:` MAY be declared. In that case:
|
|
28
|
+
|
|
29
|
+
1. ! Document the justification in an inline comment at the task declaration explaining why caching is safe for this task.
|
|
30
|
+
2. ! Append an entry to this file (under an "Exceptions" subsection) documenting the task and the justification so future contributors can audit cache-declarations centrally.
|
|
31
|
+
|
|
32
|
+
The pattern for the current single exception in `tasks/deployments.yml` (`cloudgov:sync`, `cloudgov:export`) is: neither task forwards `CLI_ARGS`; both operate over a fixed upstream pin and a fixed set of instruction files, so the cache correctly represents the task's output.
|
|
33
|
+
|
|
34
|
+
## Guard-rail
|
|
35
|
+
|
|
36
|
+
The invariant is enforced by `tests/content/test_taskfile_caching.py`, parametrized over every `deft/tasks/*.yml`. For each task that (a) invokes a Python script via `uv run python` AND (b) forwards `{{.CLI_ARGS}}` to that script, the test asserts the task declaration does NOT contain `sources:` or `generates:` keys. The failure message points contributors back at this file.
|
|
37
|
+
|
|
38
|
+
## Cross-references
|
|
39
|
+
|
|
40
|
+
- #539 -- refuse-to-overwrite safety feature whose `--force` recovery instruction lives in PRD/spec render scripts
|
|
41
|
+
- #573 -- broader ergonomics discussion about double-`--force` layering (deferred post-GA)
|
|
42
|
+
- #574 -- this rule's immediate motivating fix (drop caching from `tasks/prd.yml`)
|
|
43
|
+
- #566 / #568 -- sibling Windows-dispatch guard-rail pattern (`tests/content/test_taskfile_paths.py`) this rule's test module mirrors
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# vBRIEF Filename Conventions
|
|
2
|
+
|
|
3
|
+
Canonical rules for scope vBRIEF filenames and slug normalization.
|
|
4
|
+
|
|
5
|
+
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
6
|
+
|
|
7
|
+
**See also**: [../vbrief/vbrief.md](../vbrief/vbrief.md) | [./references.md](./references.md) | [../main.md](../../main.md)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Filename Shape
|
|
12
|
+
|
|
13
|
+
Scope vBRIEFs in `vbrief/proposed/`, `vbrief/pending/`, `vbrief/active/`, `vbrief/completed/`, and `vbrief/cancelled/` follow the pattern:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
YYYY-MM-DD-<slug>.vbrief.json
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
- ! The leading date is the **creation date** in `YYYY-MM-DD` form. It is immutable — it MUST NOT change as the scope moves through the lifecycle.
|
|
20
|
+
- ! The `<slug>` is a lowercase hyphen-separated descriptor derived from the scope title (or origin issue title for ingested vBRIEFs).
|
|
21
|
+
- ! The filename MUST end in `.vbrief.json`.
|
|
22
|
+
- ! The filename MUST match `scripts/vbrief_validate.py`'s `FILENAME_PATTERN`: `^\d{4}-\d{2}-\d{2}-[a-z0-9]+(?:-[a-z0-9]+)*\.vbrief\.json$`.
|
|
23
|
+
|
|
24
|
+
speckit Phase 4 scope vBRIEFs use the extended pattern `YYYY-MM-DD-ip<NNN>-<slug>.vbrief.json` where `<NNN>` is the implementation-phase index zero-padded to exactly three digits (e.g. `ip001`, `ip042`, `ip128`). See [`../vbrief/vbrief.md`](../vbrief/vbrief.md#speckit-phase-4-scope-vbriefs) for detail.
|
|
25
|
+
|
|
26
|
+
## Slug Normalization Rules
|
|
27
|
+
|
|
28
|
+
`scripts/slug_normalize.py` exposes the canonical `normalize_slug(title, issue_number=None)` function. Every tool or skill that coins a scope vBRIEF filename MUST either call that function or apply the same rules documented below so that two different producers always agree on the slug for the same title.
|
|
29
|
+
|
|
30
|
+
The rules, applied in order:
|
|
31
|
+
|
|
32
|
+
1. ! **Lowercase** the full input string.
|
|
33
|
+
2. ! **Strip GitHub issue-number prefixes** like `#123 ` or `123: ` from the start of the title before slugging (they belong in the date prefix and the references, not in the slug).
|
|
34
|
+
3. ! **Replace non-ASCII letters** with their closest ASCII equivalent when possible (e.g. `é` → `e`). Characters without a reasonable fold are dropped.
|
|
35
|
+
4. ! **Replace runs of non-alphanumeric characters** (whitespace, punctuation, emoji, quotes) with a single hyphen (`-`).
|
|
36
|
+
5. ! **Collapse runs of hyphens** into a single hyphen.
|
|
37
|
+
6. ! **Strip leading and trailing hyphens**.
|
|
38
|
+
7. ! **Truncate** the slug at a natural hyphen boundary so the final slug is no longer than **80 characters**. Do not cut in the middle of a word when a hyphen boundary is available within the last 20 characters.
|
|
39
|
+
8. ~ **Append `-issue-<N>`** (when an origin issue number is provided and the suffix is not already present) so ingested vBRIEFs carry their origin ID in the filename. Skills MAY opt out when the issue number is already captured elsewhere and the slug would otherwise become awkward.
|
|
40
|
+
9. ! **Guarantee at least one alphanumeric character** in the output — if the normalized result is empty (e.g. the title was all punctuation), fall back to `scope` (or `scope-<issue-number>` when available).
|
|
41
|
+
10. ⊗ Include the `YYYY-MM-DD-` date prefix in `normalize_slug` output — the caller prepends the date.
|
|
42
|
+
|
|
43
|
+
### Examples
|
|
44
|
+
|
|
45
|
+
| Input title | Issue | Output slug |
|
|
46
|
+
| --- | --- | --- |
|
|
47
|
+
| `Fix login bug` | (none) | `fix-login-bug` |
|
|
48
|
+
| `"Evolution" client API calls lack pagination` | `#19` | `evolution-client-api-calls-lack-pagination-issue-19` |
|
|
49
|
+
| `docs: 12 broken internal links in deft docs surfaced by its own verify:links tool` | `#541` | `docs-12-broken-internal-links-in-deft-docs-surfaced-by-its-own-verify-links-tool-issue-541` |
|
|
50
|
+
| `🚨 Pre-Flight requires GitHub PULL_REQUEST_TEMPLATE.md but ...` | `#531` | `pre-flight-requires-github-pull-request-template-md-but-issue-531` |
|
|
51
|
+
|
|
52
|
+
## Dedup Contract
|
|
53
|
+
|
|
54
|
+
- ! Consumers (skills + tasks) MUST use the same slug for the same title so that `task issue:ingest` and the deft-directive-refinement skill agree on dedup keys.
|
|
55
|
+
- ! Dedup is primarily driven by origin `references.uri` matching; slug agreement is the secondary safeguard.
|
|
56
|
+
- ⊗ Invent ad-hoc title → slug transformations inside skills — call `normalize_slug` instead.
|
|
57
|
+
|
|
58
|
+
## When You Need to Rename
|
|
59
|
+
|
|
60
|
+
Scope vBRIEF filenames are part of the file's identity. Renames MUST preserve the date prefix and keep the slug stable whenever possible:
|
|
61
|
+
|
|
62
|
+
- ! When the origin title changes substantially, prefer keeping the original slug rather than churning filenames; update `plan.title` in place and rely on the reference `uri` for traceability.
|
|
63
|
+
- ! If a rename is unavoidable, update every `planRef` and `references[].uri` pointing at the old path in the same commit (see `vbrief/vbrief.md` § Status-Driven Moves).
|
|
64
|
+
|
|
65
|
+
## Anti-Patterns
|
|
66
|
+
|
|
67
|
+
- ⊗ Use uppercase letters, underscores, or camelCase in the slug
|
|
68
|
+
- ⊗ Put the origin issue number in the date segment (`2026-04-22-#541-...`) — the issue number belongs in the suffix (`...-issue-541`) or in `references`
|
|
69
|
+
- ⊗ Change the date prefix when a scope moves between lifecycle folders — the date is the creation date, not the current-status date
|
|
70
|
+
- ⊗ Coin slugs by hand inside skills; call `scripts/slug_normalize.py` (`normalize_slug`) instead
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Deployments Layer
|
|
2
|
+
|
|
3
|
+
Platform-specific guidance for deployment environments (cloud.gov, Cloudflare, AWS, agentuity, etc.).
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
- ! Provide **optional** platform modules that can be applied per project
|
|
8
|
+
- ~ Keep platform guidance separate from core Deft rules
|
|
9
|
+
- ~ Enable export of platform instructions for external tools (e.g., Copilot)
|
|
10
|
+
|
|
11
|
+
## Module Structure
|
|
12
|
+
|
|
13
|
+
Create a directory per platform:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
deployments/
|
|
17
|
+
<platform>/
|
|
18
|
+
README.md
|
|
19
|
+
overview.md
|
|
20
|
+
deployment.md
|
|
21
|
+
manifest.md
|
|
22
|
+
services.md
|
|
23
|
+
cicd.md
|
|
24
|
+
security.md
|
|
25
|
+
logging.md
|
|
26
|
+
agents.md
|
|
27
|
+
agents/
|
|
28
|
+
skills/
|
|
29
|
+
upstream/
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Guidelines:
|
|
33
|
+
|
|
34
|
+
- ! Use hyphens in filenames
|
|
35
|
+
- ! Keep modules optional and isolated
|
|
36
|
+
- ~ Include a clear README with attribution (if derived)
|
|
37
|
+
- ~ Provide export tasks that generate tool-specific outputs
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Agentuity Deployment Module
|
|
2
|
+
|
|
3
|
+
Deft guidance for deploying AI agents to Agentuity, the full-stack platform built for autonomous agents.
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
- ! Optional module
|
|
8
|
+
- ~ Good for Deft usage
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
<cite index="1-1,1-2,1-3">Agentuity is a full-stack platform for building sophisticated AI agents with intelligent routing, persistent state, and seamless handoffs, deploying with built-in APIs, React frontends, databases, and monitoring, and running on their cloud, your VPC, or on-premises.</cite> Launched in February 2026, <cite index="6-8,6-9">Agentuity enables streamlined creation of fully functional and easy-to-manage agents through purpose-built primitives for agentic software, including built-in storage services, secure code execution sandboxes, production evaluations, and the ability to deploy anywhere from public cloud to on-premises infrastructure.</cite>
|
|
13
|
+
|
|
14
|
+
## Deployment Methods
|
|
15
|
+
|
|
16
|
+
| File | Method | Best For |
|
|
17
|
+
|------|--------|----------|
|
|
18
|
+
| `via-cli.md` | Agentuity CLI | Primary deployment method, local dev to production |
|
|
19
|
+
| `via-cloud.md` | Agentuity Managed Cloud | Simplest path, global edge network |
|
|
20
|
+
| `via-vpc.md` | Private VPC / On-Prem | Enterprise security, data sovereignty |
|
|
21
|
+
| `via-github-actions.md` | GitHub Actions CI/CD | Automated deployments, push-to-deploy |
|
|
22
|
+
| `via-gravity-network.md` | Gravity Network | Multi-cloud, edge, hybrid deployments |
|
|
23
|
+
|
|
24
|
+
## Supported Frameworks
|
|
25
|
+
|
|
26
|
+
<cite index="1-10,1-11">Agentuity wraps your existing agent code with observability, evals, streaming, and auth without forcing a new runtime, supporting Mastra, AI SDK, or your own code.</cite>
|
|
27
|
+
|
|
28
|
+
- **Vercel AI SDK** — Full TypeScript support with type-safe schemas
|
|
29
|
+
- **Mastra** — Agent orchestration framework
|
|
30
|
+
- **LangChain** — Python and TypeScript agent frameworks
|
|
31
|
+
- **LlamaIndex** — RAG and data framework agents
|
|
32
|
+
- **Custom Agents** — Bring your own agent implementation
|
|
33
|
+
|
|
34
|
+
## Deployment Approaches
|
|
35
|
+
|
|
36
|
+
### CLI Deployments
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Install Agentuity CLI
|
|
40
|
+
curl -fsS https://agentuity.sh | sh
|
|
41
|
+
|
|
42
|
+
# Create new project
|
|
43
|
+
agentuity create
|
|
44
|
+
|
|
45
|
+
# Start local development
|
|
46
|
+
agentuity dev
|
|
47
|
+
|
|
48
|
+
# Deploy to cloud
|
|
49
|
+
agentuity deploy
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Git-Based Deployments
|
|
53
|
+
|
|
54
|
+
<cite index="1-16">Push to main and GitHub auto-deploys</cite> — connect your repository and Agentuity automatically deploys on every push to your main branch.
|
|
55
|
+
|
|
56
|
+
### Full-Stack Development
|
|
57
|
+
|
|
58
|
+
- **Type-safe APIs**: Hono routes that auto-generate React hooks
|
|
59
|
+
- **React Frontends**: Deploy React apps with end-to-end type safety
|
|
60
|
+
- **Built-in Services**: Redis, Postgres, vector storage, object storage
|
|
61
|
+
- **Sandboxes**: Isolated containers for secure code execution
|
|
62
|
+
|
|
63
|
+
### Multi-Environment Support
|
|
64
|
+
|
|
65
|
+
<cite index="1-3,1-18">Run on Agentuity cloud, your VPC, or on-prem, with deployment to public cloud, private cloud, on-premises, multi-cloud, or edge — one platform, one SDK, one consistent developer experience.</cite>
|
|
66
|
+
|
|
67
|
+
## Quick Decision Guide
|
|
68
|
+
|
|
69
|
+
- **Fastest start**: `via-cloud.md` — deploy to managed infrastructure with one command
|
|
70
|
+
- **Enterprise security**: `via-vpc.md` — private cloud or on-premises deployment
|
|
71
|
+
- **CI/CD pipelines**: `via-github-actions.md` — automated deployments
|
|
72
|
+
- **Local development**: Agentuity CLI — offline-ready, no account required
|
|
73
|
+
- **Multi-cloud**: `via-gravity-network.md` — deploy anywhere with Gravity Network
|
|
74
|
+
- **Full-stack apps**: CLI + React SDK — agents, APIs, and frontends together
|
|
75
|
+
|
|
76
|
+
## Key Features
|
|
77
|
+
|
|
78
|
+
### Agent-Native Infrastructure
|
|
79
|
+
|
|
80
|
+
- **Long-running runtimes**: Agents can run for minutes or hours
|
|
81
|
+
- **Stateful orchestration**: Persistent state and session management
|
|
82
|
+
- **Agent-to-agent communication**: Type-safe calls between agents
|
|
83
|
+
- **Production evaluations**: Evals run on live traffic
|
|
84
|
+
|
|
85
|
+
### Built-In Services
|
|
86
|
+
|
|
87
|
+
- **Storage**: Key-value, vector, Postgres, S3-compatible object storage
|
|
88
|
+
- **Sandboxes**: Secure code execution environments
|
|
89
|
+
- **AI Gateway**: Unified access to OpenAI, Anthropic, Google, Groq, Mistral
|
|
90
|
+
- **Observability**: OpenTelemetry tracing, logging, cost tracking
|
|
91
|
+
|
|
92
|
+
### Developer Experience
|
|
93
|
+
|
|
94
|
+
- **Offline-ready**: Start building without an account
|
|
95
|
+
- **Type safety**: End-to-end TypeScript support
|
|
96
|
+
- **Hot reload**: Instant feedback in development
|
|
97
|
+
- **One-command deploy**: From dev to production instantly
|
|
98
|
+
|
|
99
|
+
### Enterprise Features
|
|
100
|
+
|
|
101
|
+
- **VPC deployment**: Run in your private cloud
|
|
102
|
+
- **On-premises**: Deploy to your own infrastructure
|
|
103
|
+
- **SSO integration**: Enterprise authentication
|
|
104
|
+
- **Compliance**: SOC 2, GDPR, HIPAA ready
|
|
105
|
+
|
|
106
|
+
## Platform Comparison
|
|
107
|
+
|
|
108
|
+
<cite index="10-9">Agentuity aims to make AWS, Azure, and Google Cloud feel like legacy systems for the old app world, positioning Agentuity as synonymous with the next generation of cloud infrastructure: an AI-native platform that meets the unique demands of this technology.</cite>
|
|
109
|
+
|
|
110
|
+
**Traditional clouds** (AWS, Azure, GCP) are optimized for request-response workloads. <cite index="9-5">Agents don't exclusively fit execution models built around short-lived requests — they reason, iterate, pause, resume, run for seconds or minutes or hours at a time, manage context, spawn other agents, and adapt their behavior as they go.</cite>
|
|
111
|
+
|
|
112
|
+
## References
|
|
113
|
+
|
|
114
|
+
- [Agentuity Documentation](https://agentuity.dev/)
|
|
115
|
+
- [Agentuity CLI GitHub](https://github.com/agentuity/cli)
|
|
116
|
+
- [Getting Started Guide](https://agentuity.dev/Introduction/getting-started)
|
|
117
|
+
- [SDK Explorer](https://agentuity.dev/)
|
|
118
|
+
- [Examples Repository](https://github.com/agentuity/examples)
|
|
119
|
+
- [Agents Spotlight](https://agentuity.com/spotlight)
|
|
120
|
+
|
|
121
|
+
<citations>
|
|
122
|
+
<document>
|
|
123
|
+
<document_type>WEB_SEARCH_RESULT</document_type>
|
|
124
|
+
<document_id>1</document_id>
|
|
125
|
+
</document>
|
|
126
|
+
<document>
|
|
127
|
+
<document_type>WEB_SEARCH_RESULT</document_type>
|
|
128
|
+
<document_id>6</document_id>
|
|
129
|
+
</document>
|
|
130
|
+
<document>
|
|
131
|
+
<document_type>WEB_SEARCH_RESULT</document_type>
|
|
132
|
+
<document_id>9</document_id>
|
|
133
|
+
</document>
|
|
134
|
+
<document>
|
|
135
|
+
<document_type>WEB_SEARCH_RESULT</document_type>
|
|
136
|
+
<document_id>10</document_id>
|
|
137
|
+
</document>
|
|
138
|
+
</citations>
|