@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
package/tools/RWLDL.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Ralph Wiggum's Loop-de-Loop (RWLDL)
|
|
2
|
+
|
|
3
|
+
Iterative code refinement by alternating micro (detailed) and macro (high-level) improvements.
|
|
4
|
+
|
|
5
|
+
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
6
|
+
|
|
7
|
+
**⚠️ See also**: [taskfile.md](./taskfile.md) | [../coding/coding.md](../coding/coding.md) | [../coding/testing.md](../coding/testing.md)
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
- ! Perform up to **N** full Loop-de-Loops (LDLs); N is configurable (default: 5)
|
|
12
|
+
- ! Stop early if no meaningful improvements (>5% impact on perf, coverage, or complexity) are found in two consecutive evaluation steps (1 or 3)
|
|
13
|
+
- ! Stop early if all verification criteria are met
|
|
14
|
+
- ! Track state in `ldl-progress.md`
|
|
15
|
+
|
|
16
|
+
## Loop-de-Loop Steps
|
|
17
|
+
|
|
18
|
+
### Step 1 — Micro Review (Close-Up Scrutiny)
|
|
19
|
+
|
|
20
|
+
- ! Read current state: `ldl-progress.md`, recent git commits, test results, logs
|
|
21
|
+
- ! Examine code granularly for:
|
|
22
|
+
- Comments and readability
|
|
23
|
+
- Code quality (naming, style)
|
|
24
|
+
- DRY violations
|
|
25
|
+
- Micro-performance (e.g., loop optimizations)
|
|
26
|
+
- Testing gaps
|
|
27
|
+
- ~ Quantify with tools (lint scores, complexity metrics)
|
|
28
|
+
- ! List 2–5 prioritized fixes, each atomic (<100 LOC change)
|
|
29
|
+
- ? If none found, note and proceed to Step 5 (verification)
|
|
30
|
+
|
|
31
|
+
### Step 2 — Micro Implement & Test
|
|
32
|
+
|
|
33
|
+
- ! For each fix from Step 1, implement in small steps
|
|
34
|
+
- ! Self-critique: list 3 downsides; mitigate top 2
|
|
35
|
+
- ! Run before committing:
|
|
36
|
+
- Unit and integration tests
|
|
37
|
+
- Fuzzing / property-based tests
|
|
38
|
+
- Lint and type checks
|
|
39
|
+
- Performance profiles
|
|
40
|
+
- ! Fix all failures before committing
|
|
41
|
+
- ! Git commit with descriptive message
|
|
42
|
+
- ! Update `ldl-progress.md` with summary, metrics deltas, and completed checkboxes
|
|
43
|
+
|
|
44
|
+
### Step 3 — Macro Review (5,000-Foot View)
|
|
45
|
+
|
|
46
|
+
- ! Reset perspective — ignore micro details
|
|
47
|
+
- ! Evaluate holistically for:
|
|
48
|
+
- Speed and scalability (Big O, parallelism)
|
|
49
|
+
- Modularity (SOLID, separation of concerns)
|
|
50
|
+
- Broader DRY and reliability (error handling, redundancy)
|
|
51
|
+
- Security and performance at scale
|
|
52
|
+
- ~ Check externalities: dependencies, docs, APIs
|
|
53
|
+
- ! List 1–3 high-impact changes; quantify potential gains
|
|
54
|
+
- ? If none found, note and proceed to Step 5 (verification)
|
|
55
|
+
|
|
56
|
+
### Step 4 — Macro Implement & Test
|
|
57
|
+
|
|
58
|
+
- ! Same process as Step 2, but for Step 3 changes
|
|
59
|
+
- ! Additionally include:
|
|
60
|
+
- Security scans (e.g., SAST)
|
|
61
|
+
- End-to-end tests
|
|
62
|
+
- ! Commit and update `ldl-progress.md`
|
|
63
|
+
|
|
64
|
+
### Step 5 — Loop or Verify
|
|
65
|
+
|
|
66
|
+
- If improvements were made → return to Step 1 for next LDL
|
|
67
|
+
- Otherwise, verify:
|
|
68
|
+
- ! All tests pass (coverage ≥95%)
|
|
69
|
+
- ! No lint or security issues
|
|
70
|
+
- ! Benchmarks stable
|
|
71
|
+
- ! README and docs current
|
|
72
|
+
- If verified → output **COMPLETE**
|
|
73
|
+
- Else → **CONTINUE** to next LDL
|
|
74
|
+
|
|
75
|
+
## Progress Tracking
|
|
76
|
+
|
|
77
|
+
- ! After each LDL, append to `ldl-progress.md`:
|
|
78
|
+
- LDL count
|
|
79
|
+
- Key metrics (coverage, complexity, perf)
|
|
80
|
+
- Rationale for continuing or stopping
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Greptile Integration
|
|
2
|
+
|
|
3
|
+
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
4
|
+
|
|
5
|
+
**⚠️ See also**: [deft-directive-review-cycle skill](../skills/deft-directive-review-cycle/SKILL.md) | [Greptile docs](https://greptile.com/docs)
|
|
6
|
+
|
|
7
|
+
**Scope:** Configuring the Greptile AI code review bot for use with deft projects.
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Greptile reviews pull requests with full codebase context. When used with deft, it integrates with the `deft-directive-review-cycle` skill to enable automated review/fix loops.
|
|
12
|
+
|
|
13
|
+
## Recommended Dashboard Settings (org-wide)
|
|
14
|
+
|
|
15
|
+
! Configure these in the [Greptile dashboard](https://app.greptile.com/review/github) as organization defaults — they apply to all repos and avoid per-repo duplication.
|
|
16
|
+
|
|
17
|
+
### Review Triggers
|
|
18
|
+
|
|
19
|
+
- ! `triggerOnUpdates` ("Automatically trigger on new commits") → **on** — re-reviews on every push so the review-cycle loop can reach its exit condition
|
|
20
|
+
- ? `triggerOnDrafts` ("Review draft pull requests") → on if you want early feedback on draft PRs
|
|
21
|
+
|
|
22
|
+
### Status
|
|
23
|
+
|
|
24
|
+
- ! `statusCheck` ("Create a status check for each PR") → **on** — posts a `"Greptile Review"` check run that org rulesets can require
|
|
25
|
+
- ~ `statusCommentsEnabled` ("Enable status comments") → **on**
|
|
26
|
+
|
|
27
|
+
### Comments
|
|
28
|
+
|
|
29
|
+
- ~ `strictness` → **2** (balanced) — 1 is verbose, 3 is critical-only
|
|
30
|
+
- ~ `commentTypes` → **Syntax, Logic** enabled, **Style** disabled — deft has its own style conventions via RFC 2119 rules
|
|
31
|
+
- ~ `fixWithAI` ("Fix with AI Prompt") → **on** — helps agents understand suggested fixes
|
|
32
|
+
|
|
33
|
+
### PR Summary
|
|
34
|
+
|
|
35
|
+
- ! Confidence Score → **on** — the review-cycle skill uses this for its exit condition (must be >3)
|
|
36
|
+
- ~ PR Summary → **on**
|
|
37
|
+
- ~ Issues Table → **on**
|
|
38
|
+
- ? Diagram → optional (adds visual but increases review size)
|
|
39
|
+
- ~ Comments Outside Diff → **on** — the review-cycle skill fetches these explicitly
|
|
40
|
+
|
|
41
|
+
### Author Exclusions
|
|
42
|
+
|
|
43
|
+
- ~ Exclude `dependabot[bot]` and `renovate[bot]` — avoids noisy reviews on automated PRs
|
|
44
|
+
|
|
45
|
+
## Per-Repo Configuration (optional)
|
|
46
|
+
|
|
47
|
+
Dashboard settings cover most needs. Per-repo `.greptile/` folders are only needed for repo-specific overrides.
|
|
48
|
+
|
|
49
|
+
### When to use `.greptile/`
|
|
50
|
+
|
|
51
|
+
- ? `config.json` — override org defaults for a specific repo (e.g. different strictness for a high-risk service)
|
|
52
|
+
- ~ `rules.md` — repo-specific review rules in prose (additive with org rules). SHOULD be present in every repo to give Greptile project-specific context.
|
|
53
|
+
- ? `files.json` — point Greptile at repo-specific context docs (architecture docs, API specs, schemas)
|
|
54
|
+
|
|
55
|
+
### Starter `.greptile/rules.md` Template
|
|
56
|
+
|
|
57
|
+
~ Every repo using Greptile SHOULD include a `.greptile/rules.md` with at least the following sections. Adapt the content to your project.
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
# Review Rules
|
|
61
|
+
|
|
62
|
+
## Project Context
|
|
63
|
+
- This project uses [brief tech stack description].
|
|
64
|
+
- Primary language(s): [languages].
|
|
65
|
+
|
|
66
|
+
## Conventions
|
|
67
|
+
- Commit messages follow Conventional Commits: type(scope): description.
|
|
68
|
+
- All files use UTF-8 without BOM.
|
|
69
|
+
- RFC2119 enforcement markers (!, ~, ⊗) are used for rules.
|
|
70
|
+
|
|
71
|
+
## Review Focus
|
|
72
|
+
- Flag any TODO/FIXME/HACK comments in new code.
|
|
73
|
+
- Verify error handling is present (no silent failures).
|
|
74
|
+
- Check that new public APIs have documentation.
|
|
75
|
+
|
|
76
|
+
## Ignore
|
|
77
|
+
- Do not flag style issues in generated files.
|
|
78
|
+
- Do not flag line length in markdown files.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Configuration hierarchy (highest → lowest precedence)
|
|
82
|
+
|
|
83
|
+
1. Org enforced rules (dashboard — cannot be overridden)
|
|
84
|
+
2. `.greptile/` folder (per-repo, recommended format)
|
|
85
|
+
3. `greptile.json` in repo root (legacy format, still supported)
|
|
86
|
+
4. Dashboard settings (org defaults)
|
|
87
|
+
|
|
88
|
+
~ Use `.greptile/` over `greptile.json` — it supports cascading, per-directory overrides, structured rules with severity, and `rules.md` prose.
|
|
89
|
+
|
|
90
|
+
⊗ Duplicate behavioral settings (`triggerOnUpdates`, `statusCheck`, etc.) in per-repo configs when they match the org defaults — maintain them in one place.
|
|
91
|
+
|
|
92
|
+
## Check Runs vs. Commit Statuses
|
|
93
|
+
|
|
94
|
+
! Greptile posts **check runs** (GitHub Checks API), not **commit statuses** (Statuses API). This distinction matters when verifying or debugging the integration.
|
|
95
|
+
|
|
96
|
+
To verify Greptile posted a check run on a commit:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
gh api repos/<owner>/<repo>/commits/<sha>/check-runs --jq '.check_runs[] | select(.name == "Greptile Review")'
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
⊗ Use `commits/<sha>/statuses` to look for Greptile — that endpoint will always be empty for Greptile.
|
|
103
|
+
|
|
104
|
+
The check run name is `"Greptile Review"` — this must match the context name in any org ruleset or branch protection rule that requires it.
|
|
105
|
+
|
|
106
|
+
## Troubleshooting
|
|
107
|
+
|
|
108
|
+
### Greptile reviews PRs but no check run appears
|
|
109
|
+
|
|
110
|
+
1. Verify `statusCheck` is enabled in the dashboard
|
|
111
|
+
2. Verify the repo is in the Enabled list on the Repositories tab
|
|
112
|
+
3. Check the GitHub App permissions — needs R/W for `checks` and `commit statuses`
|
|
113
|
+
4. Use the Checks API (not Statuses API) to verify: `gh api repos/<owner>/<repo>/commits/<sha>/check-runs`
|
|
114
|
+
5. If all settings are correct and check runs still don't appear, contact Greptile support — this may be a repo-specific issue on their end
|
|
115
|
+
|
|
116
|
+
### Greptile doesn't re-review after pushing fixes
|
|
117
|
+
|
|
118
|
+
1. Verify `triggerOnUpdates` is enabled in the dashboard
|
|
119
|
+
2. Re-reviews may have a delay (~3-5 minutes vs. near-instant for initial reviews)
|
|
120
|
+
3. As a fallback, comment `@greptileai` on the PR to manually trigger a re-review
|
|
121
|
+
4. Greptile edits its existing summary comment in place — check the `Last reviewed commit` field and `updated_at` timestamp
|
|
122
|
+
|
|
123
|
+
### Review-cycle loop never exits
|
|
124
|
+
|
|
125
|
+
1. Check the `deft-directive-review-cycle` skill's Pre-Flight Check section
|
|
126
|
+
2. Verify `triggerOnUpdates` is enabled — without it, Greptile never produces a follow-up review
|
|
127
|
+
3. Verify the confidence score section is enabled in dashboard settings — the exit condition requires confidence >3
|
|
128
|
+
|
|
129
|
+
## Anti-Patterns
|
|
130
|
+
|
|
131
|
+
- ⊗ Maintain identical Greptile settings in per-repo configs across multiple repos — use dashboard org defaults
|
|
132
|
+
- ⊗ Use `commits/<sha>/statuses` to check for Greptile — use `commits/<sha>/check-runs`
|
|
133
|
+
- ⊗ Enter the review-cycle loop without verifying `triggerOnUpdates` is enabled
|
|
134
|
+
- ⊗ Assume Greptile re-reviews instantly — allow 3-5 minutes before falling back to `@greptileai`
|
|
135
|
+
|
|
136
|
+
## References
|
|
137
|
+
|
|
138
|
+
- Greptile docs: https://greptile.com/docs
|
|
139
|
+
- `.greptile/` config reference: https://greptile.com/docs/code-review/greptile-config-reference
|
|
140
|
+
- `greptile.json` reference: https://greptile.com/docs/code-review/greptile-json-reference
|
|
141
|
+
- PR trigger configuration: https://greptile.com/docs/code-review-bot/trigger-code-review
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Installer
|
|
2
|
+
|
|
3
|
+
Legend: !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
4
|
+
|
|
5
|
+
## Version Currency
|
|
6
|
+
|
|
7
|
+
! `deft-install` MUST query the GitHub Releases API (`GET /repos/deftai/directive/releases/latest`) after the welcome banner and before the project-name prompt, with a 1.5s combined connect/read timeout. The `User-Agent` header MUST be `deft-install/<version>`.
|
|
8
|
+
|
|
9
|
+
! On version match, `deft-install` MUST print a one-line confirmation (`Running latest (<version>)`) and proceed without prompting.
|
|
10
|
+
|
|
11
|
+
! On version mismatch, `deft-install` MUST print the embedded version, latest version, publish date, and download URL, then prompt `[y/N]` with default abort.
|
|
12
|
+
|
|
13
|
+
! On network error or timeout, `deft-install` MUST print a "could not verify" message and prompt `[y/N]` with default abort.
|
|
14
|
+
|
|
15
|
+
! On non-TTY stdin, `deft-install` MUST exit 1 for any non-match outcome unless `DEFT_NO_UPDATE_CHECK=1` is set or `--no-update-check` is passed.
|
|
16
|
+
|
|
17
|
+
⊗ Run the version check for `--version` or `--help` invocations.
|
|
18
|
+
|
|
19
|
+
⊗ Suppress the prompt for any class of drift: rc-vs-GA, patch, and minor drift all use the same confirmation rule.
|
|
20
|
+
|
|
21
|
+
⊗ Warn when the embedded version is ahead of latest. Locally built development binaries must proceed without update-check noise in that case.
|
|
22
|
+
|
|
23
|
+
Comparison rule: warn iff `embedded < latest` under SemVer ordering. Pre-release identifiers sort below their corresponding GA per SemVer, so `v0.20.0-rc.1 < v0.20.0` without special-casing release candidates.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Taskfile Migration Guide
|
|
2
|
+
|
|
3
|
+
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
4
|
+
|
|
5
|
+
**⚠️ See also**: [taskfile.md](./taskfile.md) | [main.md](../../main.md)
|
|
6
|
+
|
|
7
|
+
## When to Migrate
|
|
8
|
+
|
|
9
|
+
- ~ Migrate from Makefiles or shell scripts when the project adopts Deft
|
|
10
|
+
- ~ Migrate when build automation becomes complex enough to benefit from Task's dependency resolution and caching
|
|
11
|
+
- ? Skip migration for trivial scripts that are rarely changed
|
|
12
|
+
|
|
13
|
+
## Migration Steps
|
|
14
|
+
|
|
15
|
+
1. **Audit** -- List all existing build/test/deploy commands (Makefile targets, npm scripts, shell scripts)
|
|
16
|
+
2. **Map** -- Map each command to a Task equivalent using [taskfile.md](./taskfile.md) naming conventions
|
|
17
|
+
3. **Create** -- Write `Taskfile.yml` with mapped tasks; use `deps` for ordering, `sources`/`generates` for caching
|
|
18
|
+
4. **Verify** -- Run each task and compare output to the original command
|
|
19
|
+
5. **Remove** -- Delete or archive the old Makefile/scripts once all tasks are verified
|
|
20
|
+
|
|
21
|
+
## Common Migrations
|
|
22
|
+
|
|
23
|
+
- `make build` -> `task build`
|
|
24
|
+
- `npm run test` -> `task test`
|
|
25
|
+
- `./scripts/deploy.sh` -> `task deploy`
|
|
26
|
+
- `make lint && make test` -> `task check` (with deps: [lint, test])
|
|
27
|
+
|
|
28
|
+
## Anti-Patterns
|
|
29
|
+
|
|
30
|
+
- ⊗ Migrating and keeping the old system active (causes confusion about which to use)
|
|
31
|
+
- ⊗ Translating complex shell logic directly into Task `cmds` -- extract to scripts instead
|
|
32
|
+
- ≉ Migrating all scripts at once without verifying each individually
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Taskfile Guidelines
|
|
2
|
+
|
|
3
|
+
Legend (from RFC2119): !=MUST, ~=SHOULD, ≉=SHOULD NOT, ⊗=MUST NOT, ?=MAY.
|
|
4
|
+
|
|
5
|
+
**⚠️ See also**: [main.md](../../main.md) | [taskfile-migration.md](./taskfile-migration.md)
|
|
6
|
+
|
|
7
|
+
**Scope:** Task-based build automation using [Task](https://taskfile.dev/) instead of Makefiles or shell scripts.
|
|
8
|
+
|
|
9
|
+
## Task-Centric Workflow
|
|
10
|
+
|
|
11
|
+
- ! Use `task` for repeatable operations
|
|
12
|
+
- ! Add tasks instead of standalone shell scripts
|
|
13
|
+
- ! Define default task: `task --list`
|
|
14
|
+
- ⊗ Manual shell scripts for repeatable workflows
|
|
15
|
+
|
|
16
|
+
## Core Principles
|
|
17
|
+
|
|
18
|
+
**Entrypoint:**
|
|
19
|
+
- ! Task as single entry for common flows: `task dev`, `task test`, `task build`, `task release`
|
|
20
|
+
- ~ Avoid documenting raw commands in README beyond "install Task, then run X"
|
|
21
|
+
|
|
22
|
+
**Composability:**
|
|
23
|
+
- ~ Keep tasks small and declarative
|
|
24
|
+
- ~ Move logic to scripts/binaries, Task orchestrates
|
|
25
|
+
- ⊗ Embed complex shell logic in `cmds`
|
|
26
|
+
|
|
27
|
+
**Structure:**
|
|
28
|
+
- ! Default task shows available tasks (`task --list`)
|
|
29
|
+
- ~ Split large setups: `Taskfile.dev.yml`, `Taskfile.ci.yml`, `Taskfile.tools.yml`
|
|
30
|
+
- ~ Include from root `Taskfile.yml` for readability
|
|
31
|
+
|
|
32
|
+
## Naming Conventions
|
|
33
|
+
|
|
34
|
+
**Single-language projects:**
|
|
35
|
+
- ! Use generic names: `fmt`, `lint`, `test`, `build`
|
|
36
|
+
- ! Use clear verbs: `generate`, `deploy`, `publish`, `clean`
|
|
37
|
+
|
|
38
|
+
**Multi-language projects:**
|
|
39
|
+
- ! Use namespaced names: `py:fmt`, `go:fmt`, `cpp:fmt`, `ts:fmt`
|
|
40
|
+
- ! Provide generic aliases delegating to all languages:
|
|
41
|
+
```yaml
|
|
42
|
+
fmt:
|
|
43
|
+
deps: [py:fmt, go:fmt]
|
|
44
|
+
lint:
|
|
45
|
+
deps: [py:lint, go:lint]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Task namespaces:**
|
|
49
|
+
- ! Group related tasks: `docker:build`, `docker:push`, `db:migrate`, `db:seed`, `app:run`
|
|
50
|
+
|
|
51
|
+
## Dependencies, Caching, Performance
|
|
52
|
+
|
|
53
|
+
**Dependencies:**
|
|
54
|
+
- ~ Use `deps` for task ordering/reuse
|
|
55
|
+
- ⊗ Manually sequence tasks in `cmds`
|
|
56
|
+
|
|
57
|
+
**Caching:**
|
|
58
|
+
- ~ Configure `sources`/`generates` + `method: checksum`
|
|
59
|
+
- ~ Incremental builds like Make-style
|
|
60
|
+
- ~ Only re-run when inputs change
|
|
61
|
+
|
|
62
|
+
**Idempotency:**
|
|
63
|
+
- ~ Use `status` or `preconditions` for idempotent setup
|
|
64
|
+
- ~ Skip heavy steps if already completed (e.g. "tool installed", "DB running")
|
|
65
|
+
|
|
66
|
+
## Robustness & Safety
|
|
67
|
+
|
|
68
|
+
**Shell options:**
|
|
69
|
+
- ! Set `set: [errexit, nounset, pipefail]` on tasks
|
|
70
|
+
- Exits on errors, undefined vars, pipe failures
|
|
71
|
+
|
|
72
|
+
**Validation:**
|
|
73
|
+
- ~ Use `requires: vars: [VAR]` to fail early
|
|
74
|
+
- Example: `requires: vars: [AWS_PROFILE, VERSION]`
|
|
75
|
+
- ⊗ Let scripts misbehave with missing vars
|
|
76
|
+
|
|
77
|
+
**Cleanup:**
|
|
78
|
+
- ~ Use `defer` for cleanup (temp files, background processes)
|
|
79
|
+
- ~ Cleanup runs even on task failure
|
|
80
|
+
|
|
81
|
+
## UX for Teams & CI
|
|
82
|
+
|
|
83
|
+
**Documentation:**
|
|
84
|
+
- ! Add `desc` for every user-facing task
|
|
85
|
+
- ! `task --list` must be self-documenting CLI
|
|
86
|
+
- ~ Mark internal tasks as `internal: true`
|
|
87
|
+
- ⊗ Expose internal wiring tasks to users
|
|
88
|
+
|
|
89
|
+
**Variables & Templates:**
|
|
90
|
+
- ~ Use `vars`, `env`, `{{.CLI_ARGS}}`, `{{.USER_WORKING_DIR}}`
|
|
91
|
+
- ~ Support monorepos/multi-service setups cleanly
|
|
92
|
+
- ~ Avoid duplicating similar tasks
|
|
93
|
+
|
|
94
|
+
**Artifacts:**
|
|
95
|
+
- ~ Keep local/ephemeral artifacts in temp dir
|
|
96
|
+
- ~ Use `TASK_TEMP_DIR` for generated caches/checksums
|
|
97
|
+
- ~ Ignore in VCS or commit for reproducible codegen
|
|
98
|
+
|
|
99
|
+
## Common Task Commands
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
task fmt # Format code
|
|
103
|
+
task lint # Lint code
|
|
104
|
+
task test # Run tests
|
|
105
|
+
task test:coverage # Run tests with coverage (! ≥85%)
|
|
106
|
+
task quality # All quality checks
|
|
107
|
+
task check # Pre-commit (! run: fmt+lint+type+test)
|
|
108
|
+
task build # Build project
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Example Taskfile Structure
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
version: '3'
|
|
115
|
+
|
|
116
|
+
set: [errexit, nounset, pipefail]
|
|
117
|
+
|
|
118
|
+
tasks:
|
|
119
|
+
default:
|
|
120
|
+
desc: List all tasks
|
|
121
|
+
cmds:
|
|
122
|
+
- task --list
|
|
123
|
+
silent: true
|
|
124
|
+
|
|
125
|
+
fmt:
|
|
126
|
+
desc: Format code
|
|
127
|
+
sources:
|
|
128
|
+
- '**/*.py'
|
|
129
|
+
cmds:
|
|
130
|
+
- ruff format .
|
|
131
|
+
|
|
132
|
+
lint:
|
|
133
|
+
desc: Lint code
|
|
134
|
+
sources:
|
|
135
|
+
- '**/*.py'
|
|
136
|
+
cmds:
|
|
137
|
+
- ruff check .
|
|
138
|
+
|
|
139
|
+
test:
|
|
140
|
+
desc: Run tests
|
|
141
|
+
deps: [fmt, lint]
|
|
142
|
+
cmds:
|
|
143
|
+
- pytest
|
|
144
|
+
|
|
145
|
+
build:
|
|
146
|
+
desc: Build project
|
|
147
|
+
deps: [test]
|
|
148
|
+
sources:
|
|
149
|
+
- 'src/**/*.py'
|
|
150
|
+
generates:
|
|
151
|
+
- 'dist/*'
|
|
152
|
+
cmds:
|
|
153
|
+
- python -m build
|
|
154
|
+
|
|
155
|
+
clean:
|
|
156
|
+
desc: Clean build artifacts
|
|
157
|
+
cmds:
|
|
158
|
+
- rm -rf dist/ build/ *.egg-info
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Best Practices
|
|
162
|
+
|
|
163
|
+
- ! Always include default task
|
|
164
|
+
- ! Use RFC 2119 keywords in task descriptions
|
|
165
|
+
- ~ Keep tasks <20 lines; extract scripts if larger
|
|
166
|
+
- ~ Use `dotenv` for environment files
|
|
167
|
+
- ~ Prefer `cmd` over `sh` for simple commands
|
|
168
|
+
- ⊗ Hardcode paths; use templates
|
|
169
|
+
- ⊗ Silent failures; add error handling
|
|
170
|
+
|
|
171
|
+
## Anti-Patterns
|
|
172
|
+
|
|
173
|
+
- ⊗ Shell scripts for repeatable tasks → use Task
|
|
174
|
+
- ⊗ Complex shell in `cmds` → extract to scripts
|
|
175
|
+
- ⊗ Undocumented tasks → add `desc`
|
|
176
|
+
- ⊗ Ignoring `deps` → use for ordering
|
|
177
|
+
- ⊗ No caching config → add `sources`/`generates`
|
|
178
|
+
- ⊗ Exposing internal tasks → mark `internal: true`
|
|
179
|
+
|
|
180
|
+
## References
|
|
181
|
+
|
|
182
|
+
- Docs: https://taskfile.dev/
|
|
183
|
+
- Styleguide: https://taskfile.dev/docs/styleguide
|
|
184
|
+
- Installation: https://taskfile.dev/installation/
|
|
185
|
+
- Migration: [taskfile-migration.md](./taskfile-migration.md)
|