@shanyucoder/flowgrid 0.1.5 → 0.1.9
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/README.md +1 -1
- package/adapters/laravel/registries/codegen.registry.json +9 -9
- package/bin/flowgrid.mjs +326 -115
- package/bin/lib/agent-mcp.mjs +4 -0
- package/bin/lib/agent-profiles.mjs +30 -6
- package/bin/lib/audit-run.mjs +1 -1
- package/bin/lib/cli-update.mjs +48 -8
- package/bin/lib/doctor.mjs +90 -3
- package/bin/lib/harness-overlay.mjs +12 -5
- package/bin/lib/harness-sync.mjs +17 -3
- package/bin/lib/init-adapters.mjs +75 -0
- package/bin/lib/init-scaffold.mjs +9 -0
- package/bin/lib/inject-consumer-scripts.mjs +115 -0
- package/bin/lib/merge-stack-config.mjs +89 -0
- package/bin/lib/project-gitignore.mjs +1 -0
- package/bin/lib/repo-maps-align.mjs +203 -0
- package/dist/graph/config/load-config.js +7 -2
- package/dist/graph/config/load-config.js.map +1 -1
- package/dist/graph/mcp/tools.js +1 -1
- package/dist/graph/mcp/tools.js.map +1 -1
- package/dist/graph/registry/load-registries.d.ts +1 -0
- package/dist/graph/registry/load-registries.js +14 -1
- package/dist/graph/registry/load-registries.js.map +1 -1
- package/engines/cases/render-cases.mjs +67 -5
- package/engines/docs/lib/qa-item.mjs +91 -0
- package/engines/docs/lib/render-api-summary-markdown.mjs +28 -0
- package/engines/docs/lib/render-bundle-markdown.mjs +77 -2
- package/engines/docs/lib/render-data-model-markdown.mjs +171 -0
- package/engines/docs/lib/render-design-tables.mjs +89 -7
- package/engines/docs/lib/render-qa-list.mjs +123 -25
- package/engines/docs/lib/render-template.mjs +6 -0
- package/engines/docs/render-docs.mjs +6 -2
- package/engines/docs/vitepress/config.ts +7 -7
- package/engines/docs/vitepress/surfaces-nav.mjs +45 -14
- package/engines/openapi/check-backend-spec.mjs +2 -2
- package/engines/openapi/lib/markdown-table.mjs +8 -0
- package/engines/openapi/lib/render-backend-spec-markdown.mjs +78 -0
- package/engines/registry-sync/be-capabilities-sync.mjs +118 -0
- package/engines/registry-sync/fe-design-sync.mjs +258 -0
- package/engines/registry-sync/run-registry-sync.mjs +107 -0
- package/engines/shared/e2e-output-layout.mjs +68 -0
- package/engines/shared/flowgrid-e2e-root.mjs +19 -0
- package/engines/shared/resolve-flowgrid-context.mjs +176 -0
- package/engines/spec/lib/audit-api-gaps.mjs +1 -1
- package/engines/spec/lib/audit-bundle-gaps.mjs +92 -3
- package/engines/spec/lib/audit-db-tables.mjs +529 -0
- package/engines/spec/lib/audit-e2e-coverage.mjs +88 -30
- package/engines/spec/lib/bundle-schema.mjs +4 -1
- package/engines/spec/lib/open-qa.mjs +71 -21
- package/engines/spec/split-bundle.mjs +11 -1
- package/engines/testcase/runners/generate-api.mjs +23 -23
- package/engines/testcase/runners/generate.mjs +19 -17
- package/engines/testcase/runners/lib/bootstrap-context.mjs +44 -0
- package/engines/testcase/runners/lib/write-files.mjs +37 -9
- package/harness/agents/antigravity/rules/antigravity-mcp.mdc +12 -0
- package/harness/agents/gemini/rules/gemini-mcp.mdc +11 -0
- package/harness/agents/gemini_antigravity/rules/antigravity-mcp.mdc +8 -6
- package/harness/be/skills/{grill-api → audit-api}/SKILL.md +8 -7
- package/harness/common/extracts/artifact-graph.md +2 -2
- package/harness/common/extracts/artifactgraph-phase-hooks.md +2 -2
- package/harness/common/extracts/docs-mark-detect.md +2 -2
- package/harness/common/extracts/entity-relationship.md +23 -0
- package/harness/common/rules/flowgrid-ux-common.mdc +3 -3
- package/harness/common/skills/configure-repo-maps/SKILL.md +4 -2
- package/harness/docs/extracts/agent-execution-protocol.md +3 -3
- package/harness/docs/extracts/api-codegen-readiness.md +34 -0
- package/harness/docs/extracts/api-codegen-tags.md +30 -0
- package/harness/docs/extracts/api-contract.md +43 -0
- package/harness/docs/extracts/api-spec-sync.md +35 -0
- package/harness/docs/extracts/artifactgraph-hooks-docs.md +1 -1
- package/harness/docs/extracts/call-external.md +16 -0
- package/harness/docs/extracts/common-scope.md +9 -10
- package/harness/docs/extracts/db-audit-wizard.md +45 -0
- package/harness/docs/extracts/derived-data.md +18 -0
- package/harness/docs/extracts/design-leaf-signoff.md +16 -0
- package/harness/docs/extracts/extract-registry.docs.json +11 -2
- package/harness/docs/extracts/qa-inbox.md +19 -10
- package/harness/docs/extracts/qa-team.md +32 -0
- package/harness/docs/extracts/spec-core.md +7 -3
- package/harness/docs/extracts/spec-evolution.md +21 -0
- package/harness/docs/extracts/spec-prd-lite.md +19 -0
- package/harness/docs/extracts/spec-requirement.md +6 -2
- package/harness/docs/extracts/spec-ssot-prep.md +25 -0
- package/harness/docs/extracts/tpl-module.md +12 -0
- package/harness/docs/extracts/verify-gate.md +33 -0
- package/harness/docs/extracts/wire-spec-feedback.md +31 -0
- package/harness/docs/rules/agent-compliance.mdc +1 -1
- package/harness/docs/rules/team-flow-spec.mdc +3 -4
- package/harness/docs/schemas/flowgrid-docs/qa-item.schema.json +65 -0
- package/harness/docs/skills/adopt/SKILL.md +2 -0
- package/harness/docs/skills/api/SKILL.md +4 -5
- package/harness/docs/skills/api-spec/SKILL.md +19 -6
- package/harness/docs/skills/api-update/SKILL.md +4 -4
- package/harness/docs/skills/architecture/SKILL.md +1 -1
- package/harness/docs/skills/business-process/SKILL.md +2 -0
- package/harness/docs/skills/common/SKILL.md +2 -2
- package/harness/docs/skills/common-spec/SKILL.md +10 -47
- package/harness/docs/skills/db-erd/SKILL.md +26 -0
- package/harness/docs/skills/grill/SKILL.md +28 -22
- package/harness/docs/skills/grill-api/SKILL.md +4 -6
- package/harness/docs/skills/grill-api-spec/SKILL.md +44 -24
- package/harness/docs/skills/grill-bqa/SKILL.md +28 -13
- package/harness/docs/skills/grill-common-spec/SKILL.md +10 -35
- package/harness/docs/skills/grill-dev/SKILL.md +8 -7
- package/harness/docs/skills/grill-docs/SKILL.md +11 -4
- package/harness/docs/skills/module/SKILL.md +3 -1
- package/harness/docs/skills/openapi/SKILL.md +2 -1
- package/harness/docs/skills/overview/SKILL.md +7 -1
- package/harness/docs/skills/qa-resolve/SKILL.md +13 -12
- package/harness/docs/skills/qa-review/SKILL.md +45 -0
- package/harness/docs/skills/spec/SKILL.md +43 -10
- package/harness/docs/skills/update-spec/SKILL.md +5 -2
- package/harness/fe/extracts/wire-audit-loop.md +72 -0
- package/harness/fe/extracts/wire-phase.md +45 -0
- package/harness/fe/rules/platform-design-vocabulary.mdc +1 -1
- package/harness/fe/rules/team-flow-prototype.mdc +8 -4
- package/harness/fe/skills/gen-common/SKILL.md +11 -84
- package/harness/fe/skills/grill-prototype/SKILL.md +51 -25
- package/harness/fe/skills/grill-test/SKILL.md +78 -20
- package/harness/fe/skills/grill-wire/SKILL.md +81 -0
- package/harness/fe/skills/prototype/SKILL.md +3 -2
- package/harness/fe/skills/wire/SKILL.md +8 -3
- package/harness/shared/AGENTS.md +3 -3
- package/harness/shared/SSOT_AGENT_PROTOCOL.md +3 -3
- package/harness/tests/extracts/grill-api-hook.md +69 -0
- package/harness/tests/extracts/grill-scenario-flow.md +39 -0
- package/harness/tests/extracts/grill-screen-tc.md +40 -0
- package/harness/tests/extracts/testcase-gen-cli.md +57 -0
- package/harness/tests/extracts/testcase-plan.md +29 -0
- package/harness/tests/extracts/tests-verify-gate.md +29 -0
- package/harness/tests/extracts/wire-test-handoff.md +37 -0
- package/harness/tests/skills/grill-testcase/SKILL.md +1 -0
- package/harness/tests/skills/test-api/SKILL.md +14 -6
- package/harness/tests/skills/testcase/SKILL.md +3 -1
- package/harness/tests/templates/TC.example-api.yaml +7 -1
- package/harness/tests/templates/TC.example.yaml +4 -1
- package/harness/tests/templates/tpl-testcase-plan.md +75 -0
- package/package.json +1 -1
- package/stacks/fastapi.json +1 -0
- package/stacks/laravel.json +1 -0
- package/stacks/nestjs.json +72 -0
- package/stacks/nextjs-nest.json +1 -0
- package/stacks/nuxt4-nest.json +1 -0
- package/templates/project-skeleton/architecture/03-business-process/FLOW-template.md +2 -0
- package/templates/project-skeleton/overview/index.md +68 -2
- package/templates/project-skeleton/overview/operational-areas/_template.md +37 -0
- package/templates/project-skeleton/qa/README.md +4 -8
- package/templates/project-skeleton/surfaces/common/data-model/index.md +10 -2
- package/templates/schemas/qa-item.schema.json +98 -0
- package/templates/shared/api-03-mock.stub.yaml +14 -0
- package/templates/shared/backend-api.bundle.yaml +3 -0
- package/templates/shared/backend-api.yaml +4 -0
- package/templates/shared/be-capabilities.registry.base.json +8 -0
- package/templates/shared/bundle-authoring.md +44 -7
- package/templates/shared/default-layout.ejs +131 -18
- package/templates/shared/design-spec.yaml +2 -3
- package/templates/shared/design.registry.base.json +38 -0
- package/templates/shared/feature.bundle.yaml +16 -9
- package/templates/shared/ir/generated/spec.md +281 -0
- package/templates/shared/ir-spec.yaml +1 -1
- package/templates/shared/qa-authoring.md +78 -0
- package/templates/shared/qa-item.yaml +35 -14
- package/templates/shared/tpl-api-contract.md +133 -0
- package/templates/shared/tpl-screen-data-model.md +76 -0
- package/templates/tests-skeleton/cases/README.md +4 -0
- package/templates/tests-skeleton/catalog/locale.yaml +9 -0
- package/templates/tests-skeleton/tpl-testcase-plan.md +9 -0
- package/harness/docs/skills/api-integration/SKILL.md +0 -110
- package/harness/docs/skills/grill-integration-spec/SKILL.md +0 -51
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: api-integration
|
|
3
|
-
description: EXCLUSIVE /api-integration — ONLY for backend integration contracts (partner APIs, webhooks). DO NOT merge multiple integrations into single markdown files.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
> [!CRITICAL] MANDATORY PRE-FLIGHT
|
|
8
|
-
> **[MANDATORY]** Re-read this entire `SKILL.md` via file-read tool. STRICTLY FORBIDDEN to rely on memory.
|
|
9
|
-
|
|
10
|
-
# /api-integration — Integration Contract (no Portal FE)
|
|
11
|
-
|
|
12
|
-
Shared extracts: `api-integration-spec.md`, `entity-relationship.md`, `call-external.md`, `agent-discipline.md`, `verify-gate.md`
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Rule: When to Use (vs `/api-spec`)
|
|
17
|
-
|
|
18
|
-
- **[MANDATORY]** Use `/api-integration` for: inbound/outbound webhooks, REST APIs exported to partners/3rd parties, public APIs with dedicated versioning, reverse-engineering legacy handlers or provider OpenAPI specs.
|
|
19
|
-
- **[STRICTLY FORBIDDEN]** If a Portal FE spec exists for the same user journey → use `/api-spec`, not this command.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Rule: Audit Interlock
|
|
24
|
-
|
|
25
|
-
- **[MANDATORY]** If an integration bundle already exists: run an audit before making modifications.
|
|
26
|
-
- ✅ Check for existing endpoints under `surfaces/integrations/` using `flowgrid_docs_route` or glob search before authoring a new contract trio.
|
|
27
|
-
- ❌ Never re-define routes that already exist; link and reuse them.
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Rule: Missing Information Handling & Workload Threshold (Law 2)
|
|
32
|
-
|
|
33
|
-
- **[MANDATORY]** When signature verification, retry policy, or retention policy is unknown, evaluate total missing volume:
|
|
34
|
-
- **Small Scope (≤5 questions):** Trigger `AskQuestion` wizard — one question at a time, **≥3 options**: (1) `(Recommended)`, (2) `Other` (free text), (3) `Log as Tech Debt (Pending)`.
|
|
35
|
-
- **Large Scope (≥10 gaps/endpoints):** **[MANDATORY HARD STOP IN CHAT]**. Do not spam single questions in chat. Generate an implementation plan / Plan Mode document partitioned into sequential Phases (3–5 endpoints/gaps per phase) with disk offloading at boundaries.
|
|
36
|
-
- ✅ If "Log as Tech Debt" is selected → create `qa/open/QA-<feature.id>-NNNN.yaml`. Set `integrationBacklog[]` (NOT portal `pendingTechDebt`).
|
|
37
|
-
- ❌ Never write `openQuestions` in YAML. Never invent HMAC secrets or partner-specific validation logic.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Rule: Folder Structure
|
|
42
|
-
|
|
43
|
-
- **[MANDATORY]** Every integration contract must be placed under:
|
|
44
|
-
```
|
|
45
|
-
surfaces/integrations/<provider>/<slug>/api/<seq>/
|
|
46
|
-
├── 01-backend-spec.yaml # feature.source.kind + integrationRefs (tech SSOT)
|
|
47
|
-
├── 02-openapi.yaml # generated by: flowgrid openapi_gen --spec <01>
|
|
48
|
-
└── 03-mock-data.yaml
|
|
49
|
-
```
|
|
50
|
-
- **[MANDATORY]** One `01` = one primary domain entity. Never dump all provider actions into one single file.
|
|
51
|
-
- **[STRICTLY FORBIDDEN]** Never write `.md` directly. Never combine multiple integrations into one gross monolithic file.
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Rule: Explicit URI Naming
|
|
56
|
-
|
|
57
|
-
- **[MANDATORY]** All integration endpoints MUST use explicit action suffixes:
|
|
58
|
-
- Inbound webhook: `POST /api/v1/integrations/<provider>/webhook`
|
|
59
|
-
- Inbound event action: `POST /api/v1/integrations/<provider>/{id}/sync` (or `/receive`)
|
|
60
|
-
- Outbound partner API: `POST /…/create`, `PUT /…/{id}/update`
|
|
61
|
-
- **[STRICTLY FORBIDDEN]** Never use ambiguous RESTful routes lacking explicit action semantics.
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Rule: Integration Error Handling
|
|
66
|
-
|
|
67
|
-
- **[MANDATORY]** Document explicit error responses using `#err:*` tags for:
|
|
68
|
-
- `#err:unauthorized` — invalid API key / expired token
|
|
69
|
-
- `#err:signature-invalid` — HMAC signature mismatch on webhook
|
|
70
|
-
- `#err:rate-limit` — partner throttling limit reached
|
|
71
|
-
- `#err:validation` — malformed payload
|
|
72
|
-
- `#err:system` — internal processing failure
|
|
73
|
-
- **[RECOMMENDED]** Global errors (500/503/401) → delegate to OpenAPI `$ref` schemas; do NOT duplicate across each endpoint.
|
|
74
|
-
- **[MANDATORY]** Provide partner-facing error code mappings in both `01-backend-spec.yaml` and `02-openapi.yaml`.
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Rule: YAML & Tagging
|
|
79
|
-
|
|
80
|
-
- **[MANDATORY]** Configure: `feature.source.kind`, `base: none`, `integrationRefs[]`, empty `portalRefs`, `contexts.portalLayout: none`, and `contexts.auth` (API key / HMAC / OAuth).
|
|
81
|
-
- **[MANDATORY]** Use domain tags only: `#webhook-inbound`, `#webhook-outbound`, `#partner-api`, `#public-api`, `#call-external`, `#err:*`.
|
|
82
|
-
- **[STRICTLY FORBIDDEN]** No `codegen`, no `#gen:*`, no `approval` beyond `draft` — specialized grill handles those downstream.
|
|
83
|
-
- **[MANDATORY]** All strings with `:` in YAML must be double-quoted.
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Workflow
|
|
88
|
-
|
|
89
|
-
1. Configure source metadata: `feature.source.kind`, `base: none`, `integrationRefs[]`.
|
|
90
|
-
2. Scan `surfaces/integrations/` for existing endpoints; apply reuse if found.
|
|
91
|
-
3. Set `contexts.portalLayout: none`; document `contexts.auth`.
|
|
92
|
-
4. Inventory events/endpoints from provider documentation or legacy source — mark `inferredFromCode` in `notes`.
|
|
93
|
-
5. Specify entities, idempotency keys, deduplication, and raw payload retention policies in `decisions` / `beOnlyRequirements`.
|
|
94
|
-
6. Author `api.endpoints` with explicit action URIs.
|
|
95
|
-
7. Apply integration error storming `#err:*` tags.
|
|
96
|
-
8. Run `flowgrid openapi_gen --spec …/api/<seq>/01-backend-spec.yaml` → generates `02-openapi.yaml`.
|
|
97
|
-
9. Author mock data (representative webhook payload JSON + acknowledgement response).
|
|
98
|
-
10. Run AskQuestion wizard for unresolved unknowns (signature, retry, retention).
|
|
99
|
-
11. Update `.harness/progress.md`.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Verification Checklist
|
|
104
|
-
|
|
105
|
-
- [ ] Folder structure: contract trio located under `surfaces/integrations/<provider>/<slug>/api/<seq>/`.
|
|
106
|
-
- [ ] `01-backend-spec.yaml`, `02-openapi.yaml`, `03-mock-data.yaml` all generated and populated.
|
|
107
|
-
- [ ] Partner-facing error codes and `#err:*` tags fully documented.
|
|
108
|
-
- [ ] Explicit URI action suffixes strictly applied.
|
|
109
|
-
- [ ] No `.md` authored directly. No gross monolithic files created.
|
|
110
|
-
- [ ] All YAML strings containing `:` are double-quoted.
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: grill-integration-spec
|
|
3
|
-
description: EXCLUSIVE /grill-integration-spec — ONLY for auditing backend integration contracts under surfaces/integrations/. DO NOT generate Markdown reports.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
> [!CRITICAL] MANDATORY PRE-FLIGHT
|
|
8
|
-
> **[MANDATORY]** Re-read this entire `SKILL.md` via file-read tool. STRICTLY FORBIDDEN to rely on memory.
|
|
9
|
-
|
|
10
|
-
# /grill-integration-spec — Integration Contract Audit
|
|
11
|
-
|
|
12
|
-
After `/api-integration`. Before bộ code BE `/api`. No code on docs hub.
|
|
13
|
-
|
|
14
|
-
Shared extracts: `api-integration-spec.md`, `api-codegen-readiness.md`, `api-codegen-tags.md`, `call-external.md`, `entity-relationship.md`, `agent-discipline.md`, `verify-gate.md`
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Rule: Goal & Scope
|
|
19
|
-
|
|
20
|
-
- **[MANDATORY]** Contract must be sufficient to implement webhook and partner APIs.
|
|
21
|
-
- **[MANDATORY]** OpenAPI `securitySchemes` and mock definitions must match `01-backend-spec.yaml`.
|
|
22
|
-
- **[MANDATORY]** Codegen-ready: `flowgrid check` + `flowgrid openapi_gen` / `openapi:render` must pass.
|
|
23
|
-
- **[STRICTLY FORBIDDEN]** Do NOT use `ir/design.yaml` as BE input (integrations usually have no FE IR).
|
|
24
|
-
- **[STRICTLY FORBIDDEN]** No BQA reports, no framework code snippets, no writing `ir/*`.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Rule: Workflow Steps
|
|
29
|
-
|
|
30
|
-
- **[MANDATORY]** Step 1: Resolve `surfaces/integrations/<provider>/<slug>/api/<seq>/01-backend-spec.yaml`. Never a `01` directly on the slug leaf.
|
|
31
|
-
- **[MANDATORY]** Step 2: Audit authentication, `securitySchemes`, idempotency keys, retry policies, and non-CRUD actions.
|
|
32
|
-
- **[MANDATORY]** Step 3: Enrich `01` with codegen tags (`#gen:*`, `#manual-service`, `#call-external`), `codegen.profile|entity|module`, and `endpoints[].action`.
|
|
33
|
-
- **[MANDATORY]** Step 4: Run gates:
|
|
34
|
-
- `flowgrid check --spec surfaces/integrations/<provider>/<slug>/api/<seq>/01-backend-spec.yaml`
|
|
35
|
-
- `flowgrid openapi_gen --spec …/01-backend-spec.yaml`
|
|
36
|
-
- `flowgrid openapi_render`
|
|
37
|
-
- **[MANDATORY]** Step 5: Set `approval.status: reviewed` (or `approved`) in YAML.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Verification Checklist
|
|
42
|
-
|
|
43
|
-
- [ ] Target: `01-backend-spec.yaml` under `…/integrations/…/api/<seq>/`.
|
|
44
|
-
- [ ] Auth + idempotency keys + retry policy verified and populated.
|
|
45
|
-
- [ ] Gates executed: `api:check` + `openapi:gen` + `openapi:render` exit 0.
|
|
46
|
-
- [ ] `approval.status` set to `reviewed` or `approved`.
|
|
47
|
-
- [ ] No `openQuestions` in YAML; no `.md` written directly.
|
|
48
|
-
|
|
49
|
-
## Handoff
|
|
50
|
-
|
|
51
|
-
- `approval.status: approved` → bộ code `--type=be` `/api` with `--spec …/01-backend-spec.yaml`
|