@geraldmaron/construct 1.2.1 → 1.2.2
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 +6 -6
- package/bin/construct +41 -67
- package/commands/plan/decide.md +1 -1
- package/commands/remember/runbook.md +1 -1
- package/examples/README.md +1 -1
- package/examples/distribution/README.md +1 -1
- package/examples/distribution/sources/adr.md +2 -2
- package/examples/distribution/sources/deck-one-pager.md +1 -1
- package/examples/distribution/sources/prd-platform.md +1 -1
- package/examples/distribution/sources/research-brief.md +2 -2
- package/examples/distribution/sources/rfc-platform.md +1 -1
- package/examples/distribution/sources/runbook.md +2 -2
- package/examples/distribution/sources/strategy.md +1 -1
- package/lib/agent-instructions/inject.mjs +1 -1
- package/lib/artifact-type-from-path.mjs +9 -5
- package/lib/audit-specialists.mjs +1 -1
- package/lib/audit-trail.mjs +3 -3
- package/lib/auto-docs.mjs +10 -10
- package/lib/bootstrap/built-ins.mjs +3 -3
- package/lib/boundary.mjs +3 -2
- package/lib/brand-prose.mjs +1 -1
- package/lib/cache-governor.js +4 -4
- package/lib/certification/document-io-fixtures.mjs +1 -1
- package/lib/chat/config.mjs +2 -2
- package/lib/chat/desktop-binary.mjs +5 -3
- package/lib/cli-commands.mjs +3 -3
- package/lib/cli-service-inventory.mjs +1 -1
- package/lib/comment-lint.mjs +9 -5
- package/lib/config/alias.mjs +3 -2
- package/lib/config/intake-policy.mjs +8 -78
- package/lib/config/project-config.mjs +95 -5
- package/lib/config/schema.mjs +9 -19
- package/lib/config/xdg.mjs +63 -0
- package/lib/contracts/violation-log.mjs +2 -2
- package/lib/cost-ledger.mjs +4 -3
- package/lib/cost.mjs +3 -2
- package/lib/decisions/registry.mjs +3 -3
- package/lib/distill.mjs +2 -2
- package/lib/docs-verify.mjs +2 -0
- package/lib/doctor/audit.mjs +4 -3
- package/lib/doctor/cli.mjs +0 -1
- package/lib/doctor/index.mjs +4 -4
- package/lib/doctor/report.mjs +3 -3
- package/lib/doctor/watchers/bd-watch.mjs +5 -5
- package/lib/doctor/watchers/cost.mjs +4 -4
- package/lib/doctor/watchers/disk.mjs +4 -3
- package/lib/doctor/watchers/service-health.mjs +5 -5
- package/lib/document-export.mjs +1 -1
- package/lib/document-extract.mjs +3 -3
- package/lib/document-ingest.mjs +13 -3
- package/lib/efficiency.mjs +2 -1
- package/lib/embed/approval-queue.mjs +3 -2
- package/lib/embed/cli.mjs +7 -5
- package/lib/embed/config.mjs +6 -5
- package/lib/embed/daemon.mjs +6 -5
- package/lib/embed/inbox-live-watcher.mjs +1 -1
- package/lib/embed/inbox.mjs +52 -37
- package/lib/embed/intake-metrics.mjs +3 -2
- package/lib/embed/reconcile.mjs +1 -1
- package/lib/embed/semantic.mjs +3 -2
- package/lib/embed/supervision.mjs +4 -2
- package/lib/engine/registry.mjs +3 -3
- package/lib/env-config.mjs +34 -12
- package/lib/features.mjs +4 -3
- package/lib/health-check.mjs +7 -6
- package/lib/hook-health.mjs +5 -4
- package/lib/hooks/_lib/log.mjs +4 -3
- package/lib/hooks/_lib/output-mode.mjs +2 -1
- package/lib/hooks/agent-tracker.mjs +3 -4
- package/lib/hooks/audit-reads.mjs +2 -2
- package/lib/hooks/audit-trail.mjs +2 -2
- package/lib/hooks/bash-output-logger.mjs +3 -3
- package/lib/hooks/brand-prose-lint.mjs +1 -1
- package/lib/hooks/ci-status-check.mjs +3 -2
- package/lib/hooks/context-watch.mjs +2 -2
- package/lib/hooks/context-window-recovery.mjs +5 -5
- package/lib/hooks/dep-audit.mjs +2 -2
- package/lib/hooks/doc-coupling-check.mjs +3 -2
- package/lib/hooks/edit-accumulator.mjs +3 -2
- package/lib/hooks/edit-guard.mjs +3 -3
- package/lib/hooks/guard-bash.mjs +2 -2
- package/lib/hooks/model-fallback.mjs +2 -1
- package/lib/hooks/policy-engine.mjs +4 -3
- package/lib/hooks/pre-compact.mjs +7 -7
- package/lib/hooks/readme-age-check.mjs +2 -2
- package/lib/hooks/session-optimize.mjs +4 -3
- package/lib/hooks/session-start.mjs +6 -5
- package/lib/hooks/stop-notify.mjs +9 -8
- package/lib/hooks/stop-typecheck.mjs +4 -3
- package/lib/hooks/test-watch.mjs +2 -2
- package/lib/host-disposition.mjs +1 -1
- package/lib/ingest/provider-extract.mjs +2 -1
- package/lib/init/detect-existing-structure.mjs +2 -2
- package/lib/init/doc-lanes.mjs +3 -10
- package/lib/init-docs.mjs +12 -54
- package/lib/init-unified.mjs +35 -81
- package/lib/init.mjs +7 -5
- package/lib/install/desktop-binary-download.mjs +5 -2
- package/lib/intake/daemon.mjs +31 -8
- package/lib/intake/intake-config.mjs +5 -32
- package/lib/integrations/intake-integrations.mjs +8 -7
- package/lib/knowledge/rag.mjs +2 -2
- package/lib/knowledge/search.mjs +15 -15
- package/lib/maintenance/cleanup.mjs +14 -10
- package/lib/mcp/server.mjs +1 -1
- package/lib/mcp/tools/project.mjs +2 -1
- package/lib/model-cheapest-provider.mjs +4 -3
- package/lib/model-pricing.mjs +3 -2
- package/lib/model-router.mjs +4 -3
- package/lib/models/catalog.mjs +2 -1
- package/lib/models/execution-capability-profile.mjs +2 -1
- package/lib/models/provider-poll.mjs +2 -1
- package/lib/ollama-manager.mjs +0 -1
- package/lib/op-log.mjs +2 -1
- package/lib/opencode-runtime-plugin.mjs +3 -2
- package/lib/oracle/artifact-gate.mjs +3 -0
- package/lib/oracle/cli.mjs +2 -1
- package/lib/oracle/execute.mjs +3 -2
- package/lib/oracle/index.mjs +2 -1
- package/lib/oracle/read-model.mjs +3 -2
- package/lib/performance/generate.mjs +4 -3
- package/lib/platforms/capabilities.mjs +1 -1
- package/lib/plugin-registry.mjs +2 -1
- package/lib/profiles/lifecycle.mjs +3 -3
- package/lib/project-profile.mjs +2 -1
- package/lib/project-root.mjs +9 -7
- package/lib/provider-capabilities.js +4 -3
- package/lib/providers/auth-manager.mjs +2 -1
- package/lib/providers/copilot-auth.mjs +3 -2
- package/lib/providers/creds.mjs +3 -2
- package/lib/providers/registry.mjs +3 -3
- package/lib/providers/secret-resolver.mjs +3 -2
- package/lib/read-tracker-store.mjs +2 -1
- package/lib/reconcile/mcp-entry-reconcile.mjs +2 -2
- package/lib/reflect.mjs +2 -1
- package/lib/registry/generate-docs.mjs +2 -2
- package/lib/roles/approval-surface.mjs +5 -4
- package/lib/roles/event-bus.mjs +0 -1
- package/lib/roles/gateway.mjs +6 -2
- package/lib/rules-delivery.mjs +1 -1
- package/lib/runtime-pressure.mjs +5 -3
- package/lib/sandbox.mjs +3 -2
- package/lib/scheduler/solo.mjs +6 -4
- package/lib/server/auth.mjs +4 -3
- package/lib/server/index.mjs +24 -26
- package/lib/server/insights.mjs +5 -4
- package/lib/server/webhook.mjs +2 -1
- package/lib/service-manager.mjs +5 -3
- package/lib/setup.mjs +9 -8
- package/lib/status.mjs +6 -5
- package/lib/storage/embeddings-local.mjs +3 -2
- package/lib/storage/sync.mjs +2 -2
- package/lib/telemetry/client.mjs +0 -1
- package/lib/telemetry/intent-verifications.mjs +6 -6
- package/lib/telemetry/model-pricing-catalog.mjs +4 -3
- package/lib/telemetry/rule-calls.mjs +3 -3
- package/lib/telemetry/skill-calls.mjs +3 -3
- package/lib/template-registry.mjs +1 -0
- package/lib/templates/visual-requirements.mjs +1 -1
- package/lib/test-corpus-inventory.mjs +1 -1
- package/lib/uninstall/uninstall.mjs +12 -10
- package/package.json +3 -3
- package/platforms/claude/settings.template.json +43 -43
- package/rules/common/no-fabrication.md +1 -1
- package/rules/common/release-gates.md +1 -1
- package/rules/common/research.md +1 -1
- package/rules/common/review-before-change.md +1 -1
- package/scripts/sync-specialists.mjs +11 -8
- package/skills/docs/adr-workflow.md +3 -3
- package/skills/docs/init-docs.md +9 -9
- package/skills/docs/prd-workflow.md +5 -5
- package/skills/docs/product-intelligence-review.md +1 -1
- package/skills/docs/product-intelligence-workflow.md +2 -2
- package/skills/docs/product-signal-workflow.md +1 -1
- package/skills/docs/runbook-workflow.md +4 -4
- package/skills/exploration/unknown-codebase-onboarding.md +1 -1
- package/skills/operating/orchestration-reference.md +1 -1
- package/skills/routing.md +3 -3
- package/specialists/prompts/cx-architect.md +1 -1
- package/specialists/prompts/cx-docs-keeper.md +1 -1
- package/specialists/prompts/cx-researcher.md +1 -1
- package/specialists/prompts/cx-sre.md +1 -1
- package/specialists/role-manifests.json +6 -6
- package/templates/docs/README.md +125 -0
- package/templates/docs/construct_guide.md +3 -4
- package/templates/docs/persona-artifact.md +1 -1
- package/templates/docs/prds/README.md +25 -0
- package/templates/docs/prds/templates/_template.md +206 -0
- package/templates/docs/prds/templates/meta-prd.template.md +177 -0
- package/templates/docs/prds/templates/prd-business.template.md +61 -0
- package/templates/docs/prds/templates/prd-platform.template.md +81 -0
- package/templates/docs/prds/templates/prfaq.template.md +38 -0
- package/templates/docs/rfcs/README.md +22 -0
- package/templates/docs/rfcs/templates/_template.md +58 -0
- package/templates/docs/rfcs/templates/rfc-platform.template.md +72 -0
- package/templates/homebrew/construct.rb +1 -1
- package/templates/workflows/new-feature.yml +8 -8
- package/lib/intake/legacy-paths.mjs +0 -5
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Platform RFC: {title}
|
|
2
|
+
|
|
3
|
+
- **Date**: {YYYY-MM-DD}
|
|
4
|
+
- **Author**: {name}
|
|
5
|
+
- **Status**: draft | in-review | accepted | rejected | superseded
|
|
6
|
+
- **Change type**: breaking | non-breaking | additive
|
|
7
|
+
- **Affects**: {API | SDK | schema | event | config | permission model | protocol}
|
|
8
|
+
- **Supersedes**: {RFC title or N/A}
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
Use this when the proposal changes a contract consumed by other systems:
|
|
12
|
+
APIs, SDKs, schemas, event payloads, permission models, config shapes, or protocols.
|
|
13
|
+
|
|
14
|
+
Use rfc.md instead for proposals that do not touch external contracts.
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
## Summary
|
|
18
|
+
<!-- One paragraph. What contract is changing, in what direction, and why. -->
|
|
19
|
+
|
|
20
|
+
## Motivation
|
|
21
|
+
<!-- What problem or limitation in the current contract drives this change? Cite evidence: consumer pain points, incidents, performance data, support load. Explain why the current interface cannot simply be extended. -->
|
|
22
|
+
|
|
23
|
+
## Breaking change declaration
|
|
24
|
+
<!-- Be explicit: what is breaking, what is not. List every removed, renamed, or semantically changed interface element. Omitting a breaking change here is a contract violation. -->
|
|
25
|
+
|
|
26
|
+
## Proposed contract
|
|
27
|
+
<!-- The new interface in full. Schemas, endpoint signatures, payload shapes, permission rules, config fields. Be precise enough that a consumer can write against this spec without asking questions. -->
|
|
28
|
+
|
|
29
|
+
```mermaid
|
|
30
|
+
sequenceDiagram
|
|
31
|
+
participant Consumer
|
|
32
|
+
participant Platform
|
|
33
|
+
participant Backend
|
|
34
|
+
Consumer->>Platform: contract call
|
|
35
|
+
Platform->>Backend: validate and execute
|
|
36
|
+
Backend-->>Platform: result
|
|
37
|
+
Platform-->>Consumer: response
|
|
38
|
+
Note over Platform,Backend: error path — validation failure returns typed error
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Backwards compatibility strategy
|
|
42
|
+
<!-- How existing consumers are supported during transition. Options: versioning, dual-write, feature flags, shim layer, deprecation window. State which and why. -->
|
|
43
|
+
|
|
44
|
+
## Migration guide
|
|
45
|
+
<!-- Step-by-step: what a consumer must change, in what order, with examples. If migration tooling is provided, describe it. If migration is manual, estimate effort. -->
|
|
46
|
+
|
|
47
|
+
## Versioning and deprecation
|
|
48
|
+
<!-- Version scheme for this interface. Deprecation timeline for the old version: announcement date, sunset date, removal date. Include who owns communicating the deprecation to consumers. -->
|
|
49
|
+
|
|
50
|
+
## Consumer impact analysis
|
|
51
|
+
<!-- List known consumers. For each: what breaks, what changes, what stays compatible, estimated migration effort. Flag consumers that require coordinated migration. -->
|
|
52
|
+
|
|
53
|
+
## Rollout plan
|
|
54
|
+
<!-- How the new contract ships alongside the old one. Dual-version period, traffic migration, kill switch, removal gate. Include the observable signal that triggers each phase. -->
|
|
55
|
+
|
|
56
|
+
## Operational requirements
|
|
57
|
+
<!-- Observability, rate limits, error handling, fallback behavior, and admin controls required for the new contract to be supportable. -->
|
|
58
|
+
|
|
59
|
+
## Tradeoffs and alternatives
|
|
60
|
+
<!-- Other contract designs considered. For each: what it is, why it was not chosen. -->
|
|
61
|
+
|
|
62
|
+
## Risks
|
|
63
|
+
<!-- Compatibility gaps, consumer adoption risk, timing risk, coordination failure. For each: likelihood, impact, mitigation. -->
|
|
64
|
+
|
|
65
|
+
## Verification
|
|
66
|
+
<!-- How we confirm the migration succeeded and the old version can be safely removed. Metrics, tests, observable evidence. -->
|
|
67
|
+
|
|
68
|
+
## Unresolved questions
|
|
69
|
+
<!-- Genuine unknowns. Each names an owner and a decision deadline. -->
|
|
70
|
+
|
|
71
|
+
## References
|
|
72
|
+
<!-- Related ADRs, prior RFCs, API design guidelines, consumer runbooks, tickets. -->
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# scratch on every `v*` tag push — it downloads sha256 sidecars from the
|
|
9
9
|
# GitHub Release, fills in the version and per-platform URLs/SHAs, and pushes
|
|
10
10
|
# directly to the tap. The placeholder SHAs below are only used when seeding
|
|
11
|
-
# the tap by hand the first time (see docs/maintenance/homebrew-tap.md).
|
|
11
|
+
# the tap by hand the first time (see docs/operations/maintenance/homebrew-tap.md).
|
|
12
12
|
class Construct < Formula
|
|
13
13
|
desc "Deployable AI R&D operating system for coding agents — runs locally or for teams"
|
|
14
14
|
homepage "https://github.com/geraldmaron/construct"
|
|
@@ -13,28 +13,28 @@ inputs:
|
|
|
13
13
|
|
|
14
14
|
artifacts:
|
|
15
15
|
- template: prd.md
|
|
16
|
-
path: "docs/prd/${feature_name}.md"
|
|
16
|
+
path: "docs/specs/prd/${feature_name}.md"
|
|
17
17
|
title: "PRD: ${feature_name}"
|
|
18
18
|
|
|
19
19
|
- template: adr.md
|
|
20
|
-
path: "docs/adr/${feature_name}.md"
|
|
20
|
+
path: "docs/decisions/adr/${feature_name}.md"
|
|
21
21
|
title: "ADR: ${feature_name}"
|
|
22
22
|
depends_on:
|
|
23
|
-
- "docs/prd/${feature_name}.md"
|
|
23
|
+
- "docs/specs/prd/${feature_name}.md"
|
|
24
24
|
|
|
25
25
|
- template: test-plan.md
|
|
26
26
|
path: "docs/test-plans/${feature_name}.md"
|
|
27
27
|
depends_on:
|
|
28
|
-
- "docs/adr/${feature_name}.md"
|
|
28
|
+
- "docs/decisions/adr/${feature_name}.md"
|
|
29
29
|
|
|
30
30
|
beads_items:
|
|
31
31
|
- type: feature
|
|
32
32
|
title: "${feature_name}: spec"
|
|
33
|
-
link_to: "docs/prd/${feature_name}.md"
|
|
33
|
+
link_to: "docs/specs/prd/${feature_name}.md"
|
|
34
34
|
|
|
35
35
|
- type: feature
|
|
36
36
|
title: "${feature_name}: design"
|
|
37
|
-
link_to: "docs/adr/${feature_name}.md"
|
|
37
|
+
link_to: "docs/decisions/adr/${feature_name}.md"
|
|
38
38
|
depends_on_prior: true
|
|
39
39
|
|
|
40
40
|
- type: feature
|
|
@@ -49,5 +49,5 @@ checks:
|
|
|
49
49
|
- name: prd-precedes-adr
|
|
50
50
|
kind: file-order
|
|
51
51
|
files:
|
|
52
|
-
- "docs/prd/${feature_name}.md"
|
|
53
|
-
- "docs/adr/${feature_name}.md"
|
|
52
|
+
- "docs/specs/prd/${feature_name}.md"
|
|
53
|
+
- "docs/decisions/adr/${feature_name}.md"
|