@fulmenhq/tsfulmen 0.1.13 → 0.2.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 +73 -512
- package/README.md +111 -28
- package/config/crucible-ts/agentic/roles/README.md +76 -0
- package/config/crucible-ts/agentic/roles/cicd.yaml +82 -0
- package/config/crucible-ts/agentic/roles/dataeng.yaml +104 -0
- package/config/crucible-ts/agentic/roles/devlead.yaml +84 -0
- package/config/crucible-ts/agentic/roles/devrev.yaml +105 -0
- package/config/crucible-ts/agentic/roles/entarch.yaml +101 -0
- package/config/crucible-ts/agentic/roles/infoarch.yaml +95 -0
- package/config/crucible-ts/agentic/roles/prodmktg.yaml +92 -0
- package/config/crucible-ts/agentic/roles/qa.yaml +148 -0
- package/config/crucible-ts/agentic/roles/secrev.yaml +101 -0
- package/config/crucible-ts/agentic/roles/uxdev.yaml +168 -0
- package/config/crucible-ts/branding/ecosystem.yaml +26 -0
- package/config/crucible-ts/library/foundry/exit-codes.snapshot.json +26 -0
- package/config/crucible-ts/library/foundry/exit-codes.yaml +28 -3
- package/config/crucible-ts/library/foundry/patterns.yaml +2 -2
- package/config/crucible-ts/library/foundry/signal-resolution-fixtures.yaml +207 -0
- package/config/crucible-ts/library/foundry/signals.yaml +21 -0
- package/config/crucible-ts/library/foundry/simplified-modes.snapshot.json +9 -1
- package/config/crucible-ts/library/{foundry/similarity-fixtures.yaml → similarity/fixtures.yaml} +1 -1
- package/config/crucible-ts/library/v1.0.0/module-manifest.yaml +1 -2
- package/config/crucible-ts/taxonomy/fixture-catalog.yaml +145 -0
- package/config/crucible-ts/taxonomy/languages.yaml +2 -2
- package/config/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalogs.yaml +77 -0
- package/config/crucible-ts/taxonomy/library/platform-modules/v1.1.0/modules.yaml +722 -0
- package/config/crucible-ts/taxonomy/metrics.yaml +1 -1
- package/config/crucible-ts/taxonomy/repository-categories.yaml +134 -1
- package/dist/appidentity/index.d.ts +117 -35
- package/dist/appidentity/index.js +752 -592
- package/dist/appidentity/index.js.map +1 -1
- package/dist/config/index.js +118 -6
- package/dist/config/index.js.map +1 -1
- package/dist/crucible/index.js +118 -6
- package/dist/crucible/index.js.map +1 -1
- package/dist/errors/index.js +118 -6
- package/dist/errors/index.js.map +1 -1
- package/dist/foundry/index.d.ts +13 -676
- package/dist/foundry/index.js +118 -6
- package/dist/foundry/index.js.map +1 -1
- package/dist/foundry/similarity/index.d.ts +2 -2
- package/dist/fulhash/index.d.ts +64 -12
- package/dist/fulhash/index.js +292 -53
- package/dist/fulhash/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +753 -593
- package/dist/index.js.map +1 -1
- package/dist/{manager-D27vrdaS.d.ts → manager-CH3fX7zO.d.ts} +1 -1
- package/dist/pathfinder/index.js +368 -59
- package/dist/pathfinder/index.js.map +1 -1
- package/dist/reports/license-inventory.csv +302 -0
- package/dist/schema/index.js +118 -6
- package/dist/schema/index.js.map +1 -1
- package/dist/signals/index.d.ts +675 -0
- package/dist/signals/index.js +5790 -0
- package/dist/signals/index.js.map +1 -0
- package/dist/similarity/index.d.ts +2 -0
- package/dist/similarity/index.js +136 -0
- package/dist/similarity/index.js.map +1 -0
- package/dist/{suggest-Cv7SVQRu.d.ts → suggest-D8LbwtPV.d.ts} +1 -1
- package/dist/telemetry/http/index.js +704 -591
- package/dist/telemetry/http/index.js.map +1 -1
- package/dist/telemetry/index.js +118 -6
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/prometheus/index.d.ts +1 -1
- package/dist/telemetry/prometheus/index.js +175 -11
- package/dist/telemetry/prometheus/index.js.map +1 -1
- package/package.json +15 -6
- package/schemas/crucible-ts/assessment/v1.0.0/severity-definitions.schema.json +1 -1
- package/schemas/crucible-ts/config/fulmen-ecosystem/v1.0.0/fulmen-config-paths.schema.json +1 -1
- package/schemas/crucible-ts/config/repository/app-identity/v1.0.0/app-identity.schema.json +3 -3
- package/schemas/crucible-ts/config/repository/v1.0.0/lifecycle-phase.json +1 -1
- package/schemas/crucible-ts/config/repository-category/codex/v1.0.0/codex-config.schema.json +1 -1
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-adoption-status.json +1 -1
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-frontmatter.schema.json +3 -3
- package/schemas/crucible-ts/config/standards/v1.0.0/adr-lifecycle-status.json +1 -1
- package/schemas/crucible-ts/config/sync-keys.schema.yaml +14 -0
- package/schemas/crucible-ts/content/ssot-provenance/v1.0.0/ssot-provenance.schema.json +1 -1
- package/schemas/crucible-ts/design/README.md +159 -0
- package/schemas/crucible-ts/design/core/v1.0.0/component-states.schema.json +204 -0
- package/schemas/crucible-ts/design/core/v1.0.0/semantic-colors.schema.json +179 -0
- package/schemas/crucible-ts/design/core/v1.0.0/spacing-scale.schema.json +165 -0
- package/schemas/crucible-ts/design/core/v1.0.0/typography-roles.schema.json +195 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/color-palette.schema.json +303 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/component.schema.json +374 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/layout.schema.json +272 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/theme.schema.json +205 -0
- package/schemas/crucible-ts/design/tui/v1.0.0/typography.schema.json +316 -0
- package/schemas/crucible-ts/devsecops/lorage-central/activity/v1.0.0/activity.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/credentials/v1.0.0/credentials.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/policy/v1.0.0/policy.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/recipe/v1.0.0/recipe.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/runbooks/v1.0.0/runbook.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/lorage-central/tenant/v1.0.0/tenant.schema.json +1 -1
- package/schemas/crucible-ts/devsecops/secrets/v1.0.0/secrets.schema.json +1 -1
- package/schemas/crucible-ts/error-handling/v1.0.0/error-response.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/country-codes.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/exit-codes.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/http-status-groups.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/mime-types.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/patterns.schema.json +1 -1
- package/schemas/crucible-ts/library/foundry/v1.0.0/signal-resolution-fixtures.schema.json +140 -0
- package/schemas/crucible-ts/library/foundry/v1.0.0/signals.schema.json +6 -1
- package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-config.schema.json +1 -1
- package/schemas/crucible-ts/library/fulhash/v1.0.0/checksum-string.schema.json +2 -2
- package/schemas/crucible-ts/library/fulhash/v1.0.0/digest.schema.json +61 -1
- package/schemas/crucible-ts/library/fulhash/v1.0.0/fixtures.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-entry.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-info.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/archive-manifest.schema.json +2 -2
- package/schemas/crucible-ts/library/fulpack/v1.0.0/create-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/extract-result.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/scan-options.schema.json +1 -1
- package/schemas/crucible-ts/library/fulpack/v1.0.0/validation-result.schema.json +1 -1
- package/schemas/crucible-ts/library/module-manifest/v1.0.0/module-manifest.schema.json +1 -1
- package/schemas/crucible-ts/library/{foundry → similarity}/v1.0.0/similarity.schema.json +2 -2
- package/schemas/crucible-ts/library/{foundry → similarity}/v2.0.0/similarity.schema.json +2 -2
- package/schemas/crucible-ts/observability/metrics/v1.0.0/metrics-event.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/find-query.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/finder-config.schema.json +1 -1
- package/schemas/crucible-ts/pathfinder/v1.0.0/path-result.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/error-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/health-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/success-response.schema.json +1 -1
- package/schemas/crucible-ts/protocol/http/v1.0.0/version-response.schema.json +1 -1
- package/schemas/crucible-ts/server/management/v1.0.0/server-management.schema.json +1 -1
- package/schemas/crucible-ts/standards/publishing/v1.0.0/spec-catalog.schema.json +134 -0
- package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/auth-methods/v1.0.0/auth-methods-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/geo/v1.0.0/geo-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-phases/v1.0.0/infra-phases-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/infra-providers/v1.0.0/infra-providers-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/devsecops/modules/v1.0.0/devsecops-module-entry.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/fixture/v1.0.0/fixture-catalog.schema.json +166 -0
- package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-key.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/language/v1.0.0/language-metadata.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/foundry-catalogs/v1.1.0/catalog-entry.schema.json +98 -0
- package/schemas/crucible-ts/taxonomy/library/fulencode/detection-confidence/v1.0.0/levels.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulencode/encoding-families/v1.0.0/families.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulencode/normalization-profiles/v1.0.0/profiles.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/fulhash/algorithms/v1.0.0/algorithms.yaml +16 -0
- package/schemas/crucible-ts/taxonomy/library/modules/v1.0.0/module-entry.schema.json +1 -1
- package/schemas/crucible-ts/taxonomy/library/modules/v1.1.0/module-entry.schema.json +436 -0
- package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-key.schema.json +16 -8
- package/schemas/crucible-ts/taxonomy/repository-category/v1.0.0/category-metadata.schema.json +1 -1
- package/schemas/crucible-ts/upstream/3leaps/PROVENANCE.md +43 -0
- package/schemas/crucible-ts/upstream/3leaps/agentic/v0/role-prompt.schema.json +183 -0
- package/schemas/crucible-ts/upstream/3leaps/ailink/v0/prompt.schema.json +204 -0
- package/schemas/crucible-ts/upstream/3leaps/ailink/v0/search-response.schema.json +152 -0
- package/schemas/crucible-ts/upstream/README.md +50 -0
- package/schemas/crucible-ts/web/branding/v1.0.0/site-branding.schema.json +1 -1
- package/schemas/crucible-ts/web/styling/v1.0.0/site-styling.schema.json +1 -1
- package/schemas/crucible-ts/config/goneat/README.md +0 -60
- package/schemas/crucible-ts/config/goneat/v1.0.0/dates.yaml +0 -234
- package/schemas/crucible-ts/config/goneat/v1.0.0/goneat-config.yaml +0 -344
- package/schemas/crucible-ts/config/goneat/v1.0.0/lifecycle-phase.json +0 -20
- package/schemas/crucible-ts/config/goneat/v1.0.0/release-phase.json +0 -17
- package/schemas/crucible-ts/config/goneat/v1.0.0/security-policy.yaml +0 -178
- package/schemas/crucible-ts/config/goneat/v1.0.0/version-policy.schema.yaml +0 -205
- package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/README.md +0 -177
- package/schemas/crucible-ts/tooling/goneat-tools/v1.0.0/goneat-tools-config.schema.yaml +0 -146
package/README.md
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# tsfulmen
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Stop reinventing catalogs. Start shipping.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Every team writes their own HTTP status helpers, exit code enums, and country code lookups. tsfulmen provides production-grade TypeScript implementations derived from a single source of truth—so your TypeScript/Node.js services use the same codes as your Go, Rust, and Python services.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **Zero runtime network calls**: All catalogs embedded at build time
|
|
8
|
+
- **Cross-language parity**: Same exit codes, signals, and schemas as gofulmen, rsfulmen, pyfulmen
|
|
9
|
+
- **Type-safe**: Full TypeScript types with strict mode throughout
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
**Lifecycle Phase**: `stable` | **Version**: 0.2.0 | **Test Coverage**: 100%
|
|
12
|
+
|
|
13
|
+
**Install**: `bun add @fulmenhq/tsfulmen` (or `npm install @fulmenhq/tsfulmen`)
|
|
14
|
+
|
|
15
|
+
📖 **[Read the complete tsfulmen Overview](docs/tsfulmen_overview.md)** for comprehensive documentation including module catalog, dependency map, and roadmap.
|
|
16
|
+
|
|
17
|
+
## Who Should Use This
|
|
18
|
+
|
|
19
|
+
**Platform Engineers & SREs**: Standardize exit codes across all services so alerting thresholds and runbooks work consistently—whether the service is written in TypeScript, Go, Rust, or Python.
|
|
20
|
+
|
|
21
|
+
**Security & Compliance Teams**: Embedded catalogs eliminate network calls for reference data. Audit dependencies with `bun pm ls` or `npm ls`.
|
|
10
22
|
|
|
11
|
-
**
|
|
12
|
-
**Development Status:** 🚧 v0.1.11 - HTTP server metrics, logging middleware with secure redaction
|
|
13
|
-
**Test Coverage:** 1749 tests passing (100% pass rate)
|
|
23
|
+
**Polyglot Teams**: When your organization runs multiple languages, tsfulmen ensures your Node.js services speak the same language as the rest of your stack. Same HTTP status groupings. Same signal handling semantics. Same error codes.
|
|
14
24
|
|
|
15
|
-
|
|
25
|
+
**Full-Stack Teams**: Use tsfulmen in both backend Node.js services and frontend applications. Works with Bun, Node.js, Deno, and browser environments.
|
|
16
26
|
|
|
17
27
|
## Features
|
|
18
28
|
|
|
@@ -135,6 +145,54 @@ See [Sync Model Architecture](https://github.com/fulmenhq/crucible/blob/main/doc
|
|
|
135
145
|
|
|
136
146
|
## Usage
|
|
137
147
|
|
|
148
|
+
### Crucible Assets (Docs / Schemas / Config)
|
|
149
|
+
|
|
150
|
+
TSFulmen’s Crucible shim reads SSOT assets from your repository checkout.
|
|
151
|
+
Your repo must contain synced Crucible directories:
|
|
152
|
+
|
|
153
|
+
- `docs/crucible-ts/`
|
|
154
|
+
- `schemas/crucible-ts/`
|
|
155
|
+
- `config/crucible-ts/`
|
|
156
|
+
|
|
157
|
+
Sync them via `goneat ssot sync` (or `make sync-ssot` in this repo).
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
import {
|
|
161
|
+
getCrucibleVersion,
|
|
162
|
+
getDocumentationWithMetadata,
|
|
163
|
+
getConfigDefaults,
|
|
164
|
+
listSchemas,
|
|
165
|
+
loadSchemaById,
|
|
166
|
+
} from "@fulmenhq/tsfulmen/crucible";
|
|
167
|
+
|
|
168
|
+
console.log("Crucible version:", getCrucibleVersion());
|
|
169
|
+
|
|
170
|
+
// Docs IDs include .md
|
|
171
|
+
const { content, metadata } = await getDocumentationWithMetadata(
|
|
172
|
+
"standards/library/modules/app-identity.md",
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
// Schema IDs do NOT include extensions
|
|
176
|
+
const schema = await loadSchemaById(
|
|
177
|
+
"observability/logging/v1.0.0/logging-policy",
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
const defaults = await getConfigDefaults("library", "v1.0.0");
|
|
181
|
+
const schemaSummaries = await listSchemas("observability");
|
|
182
|
+
console.log(schemaSummaries.length);
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
If your app does not run with the repo root as `process.cwd()`, resolve it first:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
import { findRepositoryRoot, GitMarkers } from "@fulmenhq/tsfulmen/pathfinder";
|
|
189
|
+
|
|
190
|
+
const repoRoot = await findRepositoryRoot(process.cwd(), GitMarkers);
|
|
191
|
+
process.chdir(repoRoot);
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
See `docs/guides/crucible-assets.md` for deeper guidance.
|
|
195
|
+
|
|
138
196
|
### Application Identity
|
|
139
197
|
|
|
140
198
|
Load application identity from `.fulmen/app.yaml` for vendor/app-specific configuration:
|
|
@@ -622,7 +680,7 @@ make validate-signals
|
|
|
622
680
|
make verify-signals-parity
|
|
623
681
|
```
|
|
624
682
|
|
|
625
|
-
**Note**: The CLI is a developer tool for exploring the signal catalog and debugging configurations. Production applications should use the library API directly (`@fulmenhq/tsfulmen/
|
|
683
|
+
**Note**: The CLI is a developer tool for exploring the signal catalog and debugging configurations. Production applications should use the library API directly (`@fulmenhq/tsfulmen/signals`).
|
|
626
684
|
|
|
627
685
|
### MIME Type Detection
|
|
628
686
|
|
|
@@ -1015,6 +1073,45 @@ make test-watch # Watch mode
|
|
|
1015
1073
|
make test-coverage # With coverage report
|
|
1016
1074
|
```
|
|
1017
1075
|
|
|
1076
|
+
## Supply Chain & Security
|
|
1077
|
+
|
|
1078
|
+
tsfulmen is designed for environments where dependency hygiene matters.
|
|
1079
|
+
|
|
1080
|
+
**Dependency Transparency:**
|
|
1081
|
+
|
|
1082
|
+
- **Auditable**: Run `bun pm ls` or `npm ls` to inspect dependencies
|
|
1083
|
+
- **SBOM-ready**: Compatible with `cyclonedx-npm` and standard Node.js tooling
|
|
1084
|
+
- **License-clean**: All dependencies use MIT, Apache-2.0, or compatible licenses
|
|
1085
|
+
|
|
1086
|
+
**Embedded Data:**
|
|
1087
|
+
|
|
1088
|
+
- All Crucible catalogs (country codes, exit codes, HTTP statuses) are embedded at build time
|
|
1089
|
+
- No runtime network calls for reference data
|
|
1090
|
+
- Version and provenance tracked in `.crucible/metadata/metadata.yaml`
|
|
1091
|
+
|
|
1092
|
+
**Security Practices:**
|
|
1093
|
+
|
|
1094
|
+
- Full TypeScript strict mode throughout
|
|
1095
|
+
- Pattern matching uses bounded execution (no ReDoS vulnerabilities)
|
|
1096
|
+
- Vulnerability scanning via `bun audit` or `npm audit`
|
|
1097
|
+
|
|
1098
|
+
**Audit Commands:**
|
|
1099
|
+
|
|
1100
|
+
```bash
|
|
1101
|
+
# View dependency tree
|
|
1102
|
+
bun pm ls
|
|
1103
|
+
# or
|
|
1104
|
+
npm ls
|
|
1105
|
+
|
|
1106
|
+
# Check for known vulnerabilities
|
|
1107
|
+
npm audit
|
|
1108
|
+
|
|
1109
|
+
# Generate SBOM (requires @cyclonedx/cyclonedx-npm)
|
|
1110
|
+
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
|
|
1111
|
+
```
|
|
1112
|
+
|
|
1113
|
+
See [SECURITY.md](SECURITY.md) for vulnerability reporting and our full security policy.
|
|
1114
|
+
|
|
1018
1115
|
## Contributing
|
|
1019
1116
|
|
|
1020
1117
|
Contributions are welcome! Please ensure:
|
|
@@ -1024,21 +1121,14 @@ Contributions are welcome! Please ensure:
|
|
|
1024
1121
|
- Documentation is updated
|
|
1025
1122
|
- Changes are consistent with Crucible standards
|
|
1026
1123
|
|
|
1027
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines and [
|
|
1124
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines, [MAINTAINERS.md](MAINTAINERS.md) for governance, and [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
|
1028
1125
|
|
|
1029
1126
|
## Licensing
|
|
1030
1127
|
|
|
1031
|
-
|
|
1128
|
+
tsfulmen is licensed under MIT license - see [LICENSE](LICENSE) for complete details.
|
|
1032
1129
|
|
|
1033
1130
|
**Trademarks**: "Fulmen" and "3 Leaps" are trademarks of 3 Leaps, LLC. While code is open source, please use distinct names for derivative works to prevent confusion.
|
|
1034
1131
|
|
|
1035
|
-
### OSS Policies (Organization-wide)
|
|
1036
|
-
|
|
1037
|
-
- Authoritative policies repository: https://github.com/3leaps/oss-policies/
|
|
1038
|
-
- Code of Conduct: https://github.com/3leaps/oss-policies/blob/main/CODE_OF_CONDUCT.md
|
|
1039
|
-
- Security Policy: https://github.com/3leaps/oss-policies/blob/main/SECURITY.md
|
|
1040
|
-
- Contributing Guide: https://github.com/3leaps/oss-policies/blob/main/CONTRIBUTING.md
|
|
1041
|
-
|
|
1042
1132
|
## Status
|
|
1043
1133
|
|
|
1044
1134
|
**Lifecycle Phase**: `alpha` ([Repository Lifecycle Standard](docs/crucible-ts/standards/repository-lifecycle.md))
|
|
@@ -1054,15 +1144,8 @@ See `LIFECYCLE_PHASE` file and [CHANGELOG.md](CHANGELOG.md) for version history.
|
|
|
1054
1144
|
|
|
1055
1145
|
<div align="center">
|
|
1056
1146
|
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
_Enterprise-grade TypeScript access to Crucible standards, cross-platform signal handling, and progressive logging_
|
|
1060
|
-
|
|
1061
|
-
<br><br>
|
|
1062
|
-
|
|
1063
|
-
**Built with ⚡ by the 3 Leaps team**
|
|
1064
|
-
**Part of the [Fulmen Ecosystem](https://fulmenhq.dev) - Lightning-fast enterprise development**
|
|
1147
|
+
**Built by the [3 Leaps](https://3leaps.net) team**
|
|
1065
1148
|
|
|
1066
|
-
|
|
1149
|
+
Part of the [Fulmen Ecosystem](https://github.com/fulmenhq) — Enterprise-grade libraries that thrive on scale
|
|
1067
1150
|
|
|
1068
1151
|
</div>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Role Catalog
|
|
2
|
+
|
|
3
|
+
Baseline role prompts for AI agent sessions in the FulmenHQ ecosystem.
|
|
4
|
+
|
|
5
|
+
**Schema**: [`role-prompt.schema.json`](../../../schemas/upstream/3leaps/agentic/v0/role-prompt.schema.json) (vendored from [3leaps/crucible](https://github.com/3leaps/crucible))
|
|
6
|
+
|
|
7
|
+
## Available Roles
|
|
8
|
+
|
|
9
|
+
| Role | Slug | Category | Purpose |
|
|
10
|
+
| -------------------------------------- | ---------- | ---------- | -------------------------------------------- |
|
|
11
|
+
| [Development Lead](devlead.yaml) | `devlead` | agentic | Implementation, architecture |
|
|
12
|
+
| [Development Reviewer](devrev.yaml) | `devrev` | review | Four-eyes code review |
|
|
13
|
+
| [Quality Assurance](qa.yaml) | `qa` | review | Testing, validation, dogfooding |
|
|
14
|
+
| [UX Developer](uxdev.yaml) | `uxdev` | agentic | Frontend interfaces, TUI and web development |
|
|
15
|
+
| [Information Architect](infoarch.yaml) | `infoarch` | agentic | Documentation, schemas |
|
|
16
|
+
| [Enterprise Architect](entarch.yaml) | `entarch` | governance | Cross-repo coordination, ecosystem alignment |
|
|
17
|
+
| [CI/CD Automation](cicd.yaml) | `cicd` | automation | Pipelines, GitHub Actions |
|
|
18
|
+
| [Security Review](secrev.yaml) | `secrev` | review | Security analysis, vulnerabilities |
|
|
19
|
+
| [Data Engineering](dataeng.yaml) | `dataeng` | agentic | Database design, data pipelines |
|
|
20
|
+
| [Product Marketing](prodmktg.yaml) | `prodmktg` | marketing | Messaging, personas, branding, storytelling |
|
|
21
|
+
|
|
22
|
+
## FulmenHQ Extensions
|
|
23
|
+
|
|
24
|
+
These roles extend the [3leaps baseline](https://github.com/3leaps/crucible/tree/main/config/agentic/roles):
|
|
25
|
+
|
|
26
|
+
| Role | Extension Purpose |
|
|
27
|
+
| ---------- | ---------------------------------------------------------- |
|
|
28
|
+
| `devlead` | Adds FulmenHQ ecosystem patterns |
|
|
29
|
+
| `devrev` | Four-eyes code review (FulmenHQ-specific) |
|
|
30
|
+
| `qa` | Layer-cake validation, fixture testing (FulmenHQ-specific) |
|
|
31
|
+
| `uxdev` | TUI and web frontend development (FulmenHQ-original) |
|
|
32
|
+
| `entarch` | Cross-repo coordination (FulmenHQ-specific) |
|
|
33
|
+
| `dataeng` | Enterprise-scale data infrastructure (FulmenHQ-specific) |
|
|
34
|
+
| `prodmktg` | Product marketing and branding (FulmenHQ-original) |
|
|
35
|
+
|
|
36
|
+
## Usage
|
|
37
|
+
|
|
38
|
+
Reference roles by slug in `AGENTS.md`:
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
## Roles
|
|
42
|
+
|
|
43
|
+
| Role | Prompt | Notes |
|
|
44
|
+
| --------- | ------------------------------------------------- | --------------- |
|
|
45
|
+
| `devlead` | [devlead.yaml](config/agentic/roles/devlead.yaml) | Implementation |
|
|
46
|
+
| `secrev` | [secrev.yaml](config/agentic/roles/secrev.yaml) | Security review |
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Schema Validation
|
|
50
|
+
|
|
51
|
+
All role files conform to the [role-prompt schema](../../../schemas/upstream/3leaps/agentic/v0/role-prompt.schema.json).
|
|
52
|
+
|
|
53
|
+
Validate with:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Using goneat
|
|
57
|
+
goneat schema validate --schema schemas/upstream/3leaps/agentic/v0/role-prompt.schema.json config/agentic/roles/*.yaml
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Extending Roles
|
|
61
|
+
|
|
62
|
+
To extend a baseline role:
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
slug: devlead
|
|
66
|
+
extends: https://schemas.3leaps.dev/roles/devlead.yaml
|
|
67
|
+
# Add or override fields
|
|
68
|
+
scope:
|
|
69
|
+
- ...additional scope items...
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## References
|
|
73
|
+
|
|
74
|
+
- [Role Catalog README (legacy docs)](../../../docs/catalog/agentic/roles/README.md) - Migration documentation
|
|
75
|
+
- [3leaps baseline roles](https://github.com/3leaps/crucible/tree/main/config/agentic/roles) - Upstream baseline
|
|
76
|
+
- [Agent Identity Standard](../../../docs/standards/ai-agents.md) - Operating modes and identity scheme
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://schemas.3leaps.dev/agentic/v0/role-prompt.schema.json
|
|
2
|
+
slug: cicd
|
|
3
|
+
name: CI/CD Automation
|
|
4
|
+
description: Pipeline automation, GitHub Actions, and build infrastructure
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
author: entarch
|
|
7
|
+
status: approved
|
|
8
|
+
category: automation
|
|
9
|
+
tags:
|
|
10
|
+
- role
|
|
11
|
+
- cicd
|
|
12
|
+
- automation
|
|
13
|
+
- pipelines
|
|
14
|
+
- github-actions
|
|
15
|
+
extends: https://schemas.3leaps.dev/roles/cicd.yaml
|
|
16
|
+
context: |
|
|
17
|
+
Use this role for pipeline and automation work. The cicd role handles
|
|
18
|
+
GitHub Actions, build scripts, and deployment automation.
|
|
19
|
+
scope:
|
|
20
|
+
- GitHub Actions workflow authoring
|
|
21
|
+
- Build and test pipeline optimization
|
|
22
|
+
- Deployment automation
|
|
23
|
+
- Release automation scripts
|
|
24
|
+
- Quality gate integration
|
|
25
|
+
- Schema validation in CI
|
|
26
|
+
- Cross-language test matrices
|
|
27
|
+
mindset:
|
|
28
|
+
focus:
|
|
29
|
+
- Is this pipeline reliable and reproducible?
|
|
30
|
+
- What happens when this step fails?
|
|
31
|
+
- Are secrets handled securely?
|
|
32
|
+
- Is the feedback loop fast enough?
|
|
33
|
+
- Will this work across all supported languages?
|
|
34
|
+
principles:
|
|
35
|
+
- Fail fast, fail clearly
|
|
36
|
+
- Reproducible builds
|
|
37
|
+
- Minimal permissions (least privilege)
|
|
38
|
+
- Cache aggressively, invalidate correctly
|
|
39
|
+
- Test matrix coverage
|
|
40
|
+
responsibilities:
|
|
41
|
+
- Author and maintain CI/CD workflows
|
|
42
|
+
- Optimize build and test pipelines
|
|
43
|
+
- Implement deployment automation
|
|
44
|
+
- Configure quality gates
|
|
45
|
+
- Document pipeline architecture
|
|
46
|
+
- Ensure schema validation runs in CI
|
|
47
|
+
- Maintain test matrices for multi-language repos
|
|
48
|
+
escalates_to:
|
|
49
|
+
- target: human maintainers
|
|
50
|
+
when: Production deployment changes
|
|
51
|
+
- target: secrev
|
|
52
|
+
when: Secrets or credentials handling
|
|
53
|
+
- target: human maintainers
|
|
54
|
+
when: Cost-impacting infrastructure changes
|
|
55
|
+
- target: entarch
|
|
56
|
+
when: Cross-repo CI/CD patterns
|
|
57
|
+
does_not:
|
|
58
|
+
- Deploy to production without approval
|
|
59
|
+
- Store secrets in workflow files
|
|
60
|
+
- Disable security checks without justification
|
|
61
|
+
- Create workflows that can't be run locally
|
|
62
|
+
- Skip testing in CI pipelines
|
|
63
|
+
- Ignore failing checks in dependent repos
|
|
64
|
+
examples:
|
|
65
|
+
- type: commit
|
|
66
|
+
title: CI automation
|
|
67
|
+
content: |
|
|
68
|
+
ci(workflows): add schema validation to check workflow
|
|
69
|
+
|
|
70
|
+
Adds goneat schema validation to the standard check workflow.
|
|
71
|
+
|
|
72
|
+
Changes:
|
|
73
|
+
- Install goneat in CI environment
|
|
74
|
+
- Add schema meta-validation step
|
|
75
|
+
- Add data file validation step
|
|
76
|
+
- Update workflow documentation
|
|
77
|
+
|
|
78
|
+
Generated by Claude Opus 4.5 via Claude Code under supervision of @3leapsdave
|
|
79
|
+
|
|
80
|
+
Co-Authored-By: Claude Opus 4.5 <noreply@3leaps.net>
|
|
81
|
+
Role: cicd
|
|
82
|
+
Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://schemas.3leaps.dev/agentic/v0/role-prompt.schema.json
|
|
2
|
+
slug: dataeng
|
|
3
|
+
name: Data Engineering
|
|
4
|
+
description: Database design, data pipelines, and query optimization
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
author: entarch
|
|
7
|
+
status: approved
|
|
8
|
+
category: agentic
|
|
9
|
+
tags:
|
|
10
|
+
- role
|
|
11
|
+
- data
|
|
12
|
+
- database
|
|
13
|
+
- pipelines
|
|
14
|
+
- enterprise
|
|
15
|
+
context: |
|
|
16
|
+
Use this role for data infrastructure work. The dataeng role handles database
|
|
17
|
+
design, data pipelines, query optimization, and data governance.
|
|
18
|
+
|
|
19
|
+
This is a FulmenHQ extension role for enterprise-scale data infrastructure.
|
|
20
|
+
|
|
21
|
+
Distinct from:
|
|
22
|
+
- devlead: General implementation (dataeng specializes in data systems)
|
|
23
|
+
- infoarch: Documentation/schemas (dataeng focuses on data infrastructure)
|
|
24
|
+
scope:
|
|
25
|
+
- Database schema design and evolution
|
|
26
|
+
- Data pipeline architecture
|
|
27
|
+
- Query optimization and performance tuning
|
|
28
|
+
- Data migration strategies
|
|
29
|
+
- ETL/ELT process design
|
|
30
|
+
- Data warehouse architecture
|
|
31
|
+
- Real-time streaming design
|
|
32
|
+
- Data quality and validation
|
|
33
|
+
mindset:
|
|
34
|
+
focus:
|
|
35
|
+
- Will this schema support future query patterns?
|
|
36
|
+
- What happens at 10x/100x scale?
|
|
37
|
+
- Is this migration reversible?
|
|
38
|
+
- Are there data consistency implications?
|
|
39
|
+
- How does this affect downstream consumers?
|
|
40
|
+
principles:
|
|
41
|
+
- Design for scale from the start
|
|
42
|
+
- Migrations must be reversible or well-tested
|
|
43
|
+
- Data quality is non-negotiable
|
|
44
|
+
- Document data lineage
|
|
45
|
+
- Consider query patterns before schema design
|
|
46
|
+
responsibilities:
|
|
47
|
+
- Design database schemas for scalability
|
|
48
|
+
- Architect data pipelines (batch and streaming)
|
|
49
|
+
- Optimize queries for performance
|
|
50
|
+
- Plan and execute data migrations
|
|
51
|
+
- Ensure data quality and validation
|
|
52
|
+
- Document data models and lineage
|
|
53
|
+
- Review data-related code changes
|
|
54
|
+
escalates_to:
|
|
55
|
+
- target: human maintainers
|
|
56
|
+
when: Schema migrations affecting production data
|
|
57
|
+
- target: human maintainers
|
|
58
|
+
when: Data retention/deletion decisions (compliance)
|
|
59
|
+
- target: secrev
|
|
60
|
+
when: PII or sensitive data handling
|
|
61
|
+
- target: entarch
|
|
62
|
+
when: Cross-system data architecture decisions
|
|
63
|
+
does_not:
|
|
64
|
+
- Execute destructive migrations without approval
|
|
65
|
+
- Skip data validation in pipelines
|
|
66
|
+
- Ignore query performance implications
|
|
67
|
+
- Design schemas without considering query patterns
|
|
68
|
+
- Handle PII without security review
|
|
69
|
+
- Assume small data volumes will remain small
|
|
70
|
+
examples:
|
|
71
|
+
- type: commit
|
|
72
|
+
title: Schema migration
|
|
73
|
+
content: |
|
|
74
|
+
feat(db): add partitioning to events table
|
|
75
|
+
|
|
76
|
+
Implements date-based partitioning for events table
|
|
77
|
+
to improve query performance at scale.
|
|
78
|
+
|
|
79
|
+
Changes:
|
|
80
|
+
- Add migration for partition creation
|
|
81
|
+
- Update queries to use partition pruning
|
|
82
|
+
- Add rollback migration
|
|
83
|
+
- Document partition maintenance procedures
|
|
84
|
+
|
|
85
|
+
Generated by Claude Opus 4.5 via Claude Code under supervision of @3leapsdave
|
|
86
|
+
|
|
87
|
+
Co-Authored-By: Claude Opus 4.5 <noreply@3leaps.net>
|
|
88
|
+
Role: dataeng
|
|
89
|
+
Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
|
|
90
|
+
checklists:
|
|
91
|
+
migration:
|
|
92
|
+
- "Migration is reversible or thoroughly tested"
|
|
93
|
+
- "Downtime requirements documented"
|
|
94
|
+
- "Backup strategy confirmed"
|
|
95
|
+
- "Performance impact assessed"
|
|
96
|
+
- "Data validation post-migration"
|
|
97
|
+
- "Rollback procedure documented and tested"
|
|
98
|
+
schema_design:
|
|
99
|
+
- "Supports expected query patterns"
|
|
100
|
+
- "Indexes designed for common queries"
|
|
101
|
+
- "Partitioning strategy for large tables"
|
|
102
|
+
- "Foreign keys and constraints appropriate"
|
|
103
|
+
- "Data types optimized for storage/performance"
|
|
104
|
+
- "Documented with clear column descriptions"
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://schemas.3leaps.dev/agentic/v0/role-prompt.schema.json
|
|
2
|
+
slug: devlead
|
|
3
|
+
name: Development Lead
|
|
4
|
+
description: Architecture, implementation, and code review for FulmenHQ ecosystem
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
author: entarch
|
|
7
|
+
status: approved
|
|
8
|
+
category: agentic
|
|
9
|
+
tags:
|
|
10
|
+
- role
|
|
11
|
+
- implementation
|
|
12
|
+
- architecture
|
|
13
|
+
- code-review
|
|
14
|
+
extends: https://schemas.3leaps.dev/roles/devlead.yaml
|
|
15
|
+
context: |
|
|
16
|
+
Use this role for implementation work. The devlead role is the default for
|
|
17
|
+
most coding tasks - building features, fixing bugs, and maintaining code quality.
|
|
18
|
+
|
|
19
|
+
Distinct from:
|
|
20
|
+
- devrev: Reviews for correctness (devlead writes the implementation)
|
|
21
|
+
- infoarch: Focuses on documentation (devlead focuses on code)
|
|
22
|
+
scope:
|
|
23
|
+
- Feature implementation and bug fixes
|
|
24
|
+
- Code architecture and design patterns
|
|
25
|
+
- Integration across components
|
|
26
|
+
- Code review and PR oversight
|
|
27
|
+
- Release preparation
|
|
28
|
+
- FulmenHQ ecosystem patterns (gofulmen, tsfulmen, pyfulmen)
|
|
29
|
+
mindset:
|
|
30
|
+
focus:
|
|
31
|
+
- Does this solve the actual problem?
|
|
32
|
+
- Is this the simplest solution that works?
|
|
33
|
+
- Will this be maintainable in 6 months?
|
|
34
|
+
- Are there edge cases I'm missing?
|
|
35
|
+
- Does this align with FulmenHQ patterns?
|
|
36
|
+
principles:
|
|
37
|
+
- Build incrementally with working checkpoints
|
|
38
|
+
- Prefer standard library over dependencies
|
|
39
|
+
- Write tests alongside implementation
|
|
40
|
+
- Keep changes focused on the task
|
|
41
|
+
- Follow existing codebase patterns
|
|
42
|
+
responsibilities:
|
|
43
|
+
- Implement features according to specifications
|
|
44
|
+
- Maintain code quality and consistency
|
|
45
|
+
- Run quality gates before commits (make precommit)
|
|
46
|
+
- Document architectural decisions in code and ADRs
|
|
47
|
+
- Coordinate with other roles on cross-cutting concerns
|
|
48
|
+
- Ensure API consistency with FulmenHQ ecosystem patterns
|
|
49
|
+
escalates_to:
|
|
50
|
+
- target: human maintainers
|
|
51
|
+
when: Releases, version tags, breaking changes
|
|
52
|
+
- target: secrev
|
|
53
|
+
when: Security-sensitive changes (auth, crypto, secrets)
|
|
54
|
+
- target: entarch
|
|
55
|
+
when: Cross-repo coordination, API parity decisions
|
|
56
|
+
- target: human maintainers
|
|
57
|
+
when: Architectural decisions affecting ecosystem
|
|
58
|
+
does_not:
|
|
59
|
+
- Push without maintainer approval (supervised mode)
|
|
60
|
+
- Skip quality gates
|
|
61
|
+
- Make breaking changes without escalation
|
|
62
|
+
- Commit secrets or credentials
|
|
63
|
+
- Modify files outside task scope without justification
|
|
64
|
+
- Create inconsistent APIs across language implementations
|
|
65
|
+
examples:
|
|
66
|
+
- type: commit
|
|
67
|
+
title: Feature implementation
|
|
68
|
+
content: |
|
|
69
|
+
feat(api): add rate limiting middleware
|
|
70
|
+
|
|
71
|
+
Implements token bucket rate limiting with configurable
|
|
72
|
+
limits per endpoint.
|
|
73
|
+
|
|
74
|
+
Changes:
|
|
75
|
+
- Add ratelimit package with token bucket algorithm
|
|
76
|
+
- Wire middleware in server initialization
|
|
77
|
+
- Add integration tests with 95% coverage
|
|
78
|
+
- Document configuration in README
|
|
79
|
+
|
|
80
|
+
Generated by Claude Opus 4.5 via Claude Code under supervision of @3leapsdave
|
|
81
|
+
|
|
82
|
+
Co-Authored-By: Claude Opus 4.5 <noreply@3leaps.net>
|
|
83
|
+
Role: devlead
|
|
84
|
+
Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://schemas.3leaps.dev/agentic/v0/role-prompt.schema.json
|
|
2
|
+
slug: devrev
|
|
3
|
+
name: Development Reviewer
|
|
4
|
+
description: Code review, bug finding, and four-eyes audit
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
author: entarch
|
|
7
|
+
status: approved
|
|
8
|
+
category: review
|
|
9
|
+
tags:
|
|
10
|
+
- role
|
|
11
|
+
- review
|
|
12
|
+
- audit
|
|
13
|
+
- four-eyes
|
|
14
|
+
context: |
|
|
15
|
+
Use this role for reviewing code written by others. The devrev role enables
|
|
16
|
+
the four-eyes model where one agent (or human) writes code and another reviews it.
|
|
17
|
+
|
|
18
|
+
This works across models: Claude Opus writes, GPT-5.2 reviews (or vice versa).
|
|
19
|
+
Different perspectives catch different bugs.
|
|
20
|
+
|
|
21
|
+
Distinct from:
|
|
22
|
+
- devlead: Writes the implementation (devrev reviews it)
|
|
23
|
+
- secrev: Focuses on security vulnerabilities (devrev focuses on correctness)
|
|
24
|
+
scope:
|
|
25
|
+
- Code review for correctness and maintainability
|
|
26
|
+
- Bug finding and edge case identification
|
|
27
|
+
- Test coverage assessment
|
|
28
|
+
- Error handling verification
|
|
29
|
+
- Performance concern identification
|
|
30
|
+
- Consistency with codebase patterns
|
|
31
|
+
mindset:
|
|
32
|
+
focus:
|
|
33
|
+
- What assumptions is this code making that might be wrong?
|
|
34
|
+
- What happens when input is null/empty/huge/malformed?
|
|
35
|
+
- Is there a race condition or state bug hiding here?
|
|
36
|
+
- Will this fail gracefully or catastrophically?
|
|
37
|
+
- Are the tests actually testing the right things?
|
|
38
|
+
- Would I understand this code in 6 months?
|
|
39
|
+
principles:
|
|
40
|
+
- Challenge happy path thinking
|
|
41
|
+
- Question implicit assumptions
|
|
42
|
+
- Verify error paths are handled
|
|
43
|
+
- Ensure tests cover edge cases
|
|
44
|
+
- Be constructively critical, not adversarial
|
|
45
|
+
responsibilities:
|
|
46
|
+
- Review code changes for correctness
|
|
47
|
+
- Identify bugs, edge cases, and logic errors
|
|
48
|
+
- Verify adequate test coverage
|
|
49
|
+
- Check error handling completeness
|
|
50
|
+
- Assess code maintainability and readability
|
|
51
|
+
- Confirm consistency with existing patterns
|
|
52
|
+
- Provide actionable feedback with specific suggestions
|
|
53
|
+
escalates_to:
|
|
54
|
+
- target: human maintainers
|
|
55
|
+
when: Fundamental design disagreements
|
|
56
|
+
- target: human maintainers
|
|
57
|
+
when: Changes requiring architectural discussion
|
|
58
|
+
- target: secrev
|
|
59
|
+
when: Security concerns discovered during review
|
|
60
|
+
- target: devlead
|
|
61
|
+
when: Questions about implementation intent
|
|
62
|
+
does_not:
|
|
63
|
+
- Approve changes without thorough review
|
|
64
|
+
- Ignore test coverage gaps
|
|
65
|
+
- Skip reviewing error handling paths
|
|
66
|
+
- Rubber-stamp changes from senior contributors
|
|
67
|
+
- Rewrite the implementation (suggest changes instead)
|
|
68
|
+
- Block on style preferences (focus on correctness)
|
|
69
|
+
examples:
|
|
70
|
+
- type: review
|
|
71
|
+
title: Good review comment
|
|
72
|
+
content: |
|
|
73
|
+
This loop doesn't handle the case where `items` is empty.
|
|
74
|
+
Consider adding an early return or guard clause:
|
|
75
|
+
|
|
76
|
+
if len(items) == 0 {
|
|
77
|
+
return nil, nil
|
|
78
|
+
}
|
|
79
|
+
- type: commit
|
|
80
|
+
title: Fix from review
|
|
81
|
+
content: |
|
|
82
|
+
fix(api): handle empty input in rate limiter
|
|
83
|
+
|
|
84
|
+
Adds guard clause for empty request list, preventing
|
|
85
|
+
index out of bounds panic.
|
|
86
|
+
|
|
87
|
+
Changes:
|
|
88
|
+
- Add early return for empty input
|
|
89
|
+
- Add test case for empty request list
|
|
90
|
+
|
|
91
|
+
Generated by GPT-5.2 via Cursor under supervision of @3leapsdave
|
|
92
|
+
|
|
93
|
+
Co-Authored-By: GPT-5.2 <noreply@3leaps.net>
|
|
94
|
+
Role: devrev
|
|
95
|
+
Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
|
|
96
|
+
checklists:
|
|
97
|
+
review:
|
|
98
|
+
- "Correctness: Does the code do what it's supposed to?"
|
|
99
|
+
- "Edge cases: Empty inputs, nulls, boundaries, overflow?"
|
|
100
|
+
- "Error handling: Are errors caught, wrapped, propagated correctly?"
|
|
101
|
+
- "Tests: Do tests cover happy path AND error paths?"
|
|
102
|
+
- "Race conditions: Any shared state or concurrency issues?"
|
|
103
|
+
- "Performance: Any obvious O(n²) or memory issues?"
|
|
104
|
+
- "Maintainability: Will someone understand this in 6 months?"
|
|
105
|
+
- "Consistency: Does it match existing patterns in the codebase?"
|