Skip to content

Commit 117ae6c

Browse files
authored
[codex] close out storefront proof and local gate split (#38)
* fix(runtime): stabilize search pipeline success path * chore(closeout): land storefront proof and local gate split * docs(governance): refresh generated reports * fix(docs): relax stable fragment freshness checks * fix(ci): keep quick feedback on true fast-path gates
1 parent 7fbc491 commit 117ae6c

59 files changed

Lines changed: 2612 additions & 501 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -299,13 +299,10 @@ jobs:
299299
bash scripts/run_governance_py.sh scripts/check_ci_supply_chain_policy.py
300300
bash scripts/run_governance_py.sh scripts/check_docs_navigation_registry.py
301301
bash scripts/run_governance_py.sh scripts/check_docs_manual_fact_boundary.py
302+
bash scripts/run_governance_py.sh scripts/check_frontdoor_contract.py
303+
bash scripts/run_governance_py.sh scripts/check_storefront_proof_assets.py
302304
bash scripts/run_governance_py.sh scripts/check_docs_render_freshness.py
303305
bash scripts/check_gitignore_hygiene.sh
304-
bash scripts/check_repo_hygiene.sh
305-
if [[ "${GITHUB_EVENT_NAME}" == "pull_request" || "${GITHUB_EVENT_NAME}" == "push" ]]; then
306-
bash scripts/hooks/doc_drift_gate.sh
307-
bash scripts/hooks/doc_sync_gate.sh
308-
fi
309306
310307
- name: Publish quick-feedback summary
311308
if: always()

.pre-commit-config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Host compatibility hook lane:
22
# - Hooks run on host by design.
3-
# - Release-grade canonical full gate remains container-first: `npm run ci` -> `bash scripts/docker_ci.sh ci`.
3+
# - Release-grade canonical full gate remains strict/manual-first: `npm run ci:strict`.
44
repos:
55
- repo: local
66
hooks:
@@ -23,7 +23,7 @@ repos:
2323
entry: bash scripts/check_repo_hygiene.sh
2424
language: system
2525
pass_filenames: false
26-
stages: [pre-commit]
26+
stages: [manual]
2727

2828
- id: cortexpilot-public-sensitive-surface-gate
2929
name: cortexpilot-public-sensitive-surface-gate
@@ -39,7 +39,7 @@ repos:
3939
language: system
4040
pass_filenames: false
4141
always_run: true
42-
stages: [pre-commit]
42+
stages: [manual]
4343

4444
- id: cortexpilot-root-semantic-cleanliness
4545
name: cortexpilot-root-semantic-cleanliness

AGENTS.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Work in CortexPilot as a contract-first engineering agent:
2020
## Key Commands
2121

2222
- bootstrap: `npm run bootstrap`
23+
- local fast CI: `npm run ci`
24+
- local strict CI: `npm run ci:strict`
2325
- fast verification: `npm run test:quick`
2426
- main local gate: `npm run test`
2527
- host safety scan: `npm run scan:host-process-risks`
@@ -54,12 +56,6 @@ Work in CortexPilot as a contract-first engineering agent:
5456
- current-run builders: `artifact_index/current_run_index`, `cost_profile`, `runner_health`, `slo`, `portal`, `provenance`.
5557
- docs and wrappers must not hand-maintain live current-run status; they must point readers back to the checker receipts.
5658
- if the current-run source manifest is missing, authoritative current-run reports must fail closed or run only in explicit advisory mode.
57-
- protected upstream/live-smoke receipts are route-exempt on `trusted_pr`,
58-
`untrusted_pr`, and hosted-first `push_main`; those routes must not fail just
59-
because manual closeout/provider credentials are absent
60-
- hosted `push_main` governance closeout also treats `upstream_report`,
61-
`upstream_same_run_report`, and `current_run_consistency` as advisory when
62-
the manifest already marks upstream/live smoke route-exempt
6359
<!-- GENERATED:current-run-evidence-summary:end -->
6460

6561
<!-- GENERATED:coverage-summary:start -->

CLAUDE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,8 @@ This file mirrors the root AI entrypoint for tools that prefer `CLAUDE.md`.
374374
## Key Commands
375375

376376
- `npm run bootstrap`
377+
- `npm run ci`
378+
- `npm run ci:strict`
377379
- `npm run test`
378380
- `npm run test:quick`
379381
- `npm run scan:host-process-risks`

README.md

Lines changed: 56 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,35 @@
33
AI Work Command Tower for Codex and Claude Code workflows with Model Context
44
Protocol (MCP)-readable proof, replay, and Workflow Cases.
55

6-
CortexPilot is a contract-first orchestration repo for Codex / Claude Code
7-
teams that want one operator surface, one governed run path, and one
8-
replayable evidence trail instead of scattered agents, logs, and scripts.
6+
CortexPilot gives Codex / Claude Code teams one governed path from the PM
7+
request to the Workflow Case to Proof & Replay, instead of scattered agents,
8+
logs, and local scripts.
99

1010
CortexPilot is a contract-first multi-agent orchestration repository.
1111

12-
CortexPilot is an AI Work Command Tower built around three product words:
13-
**Command Tower**, **Workflow Cases**, and **Proof & Replay**.
12+
The public story is intentionally narrower than the full monorepo:
1413

15-
The desktop operator surfaces are also being pulled onto the same shared copy
16-
and shared status-presentation substrate, so `Run Detail` and `Overview` do
17-
not drift back into page-local wording contracts.
14+
- **See one proven workflow first**
15+
- **Choose the right adoption path second**
16+
- **Open MCP / API / builder / skills surfaces only after the real job is clear**
1817

19-
The current public story speaks first to Codex / Claude Code teams and second
20-
to broader AI ops / platform teams. The front door should ride the heat around
21-
those ecosystems without pretending CortexPilot is already a hosted operator
22-
service.
18+
Current public boundary: CortexPilot is a repo-backed operator control plane,
19+
not a hosted product, and the shipped MCP surface remains **read-only**.
2320

24-
The public homepage now stays intentionally compressed: start with the first
25-
success path, use the compatibility matrix as the main router, and let the
26-
deeper MCP / integration / skills / builder pages carry the detailed
27-
explanations.
28-
29-
The dashboard public-home now mirrors that same rule: keep the compatibility
30-
card as the main routing layer, but keep a lighter **Use Cases** side door for
31-
the fastest proof-first walkthrough instead of rebuilding a second routing
32-
grid inside the operator surface.
33-
34-
The product name stays **CortexPilot**. If `cortexpilot.ai` is later claimed,
35-
treat it as a marketing/front-door domain, not as a product rename.
36-
37-
[Quickstart](#quickstart) · [Docs](docs/README.md) · [Architecture](docs/architecture/runtime-topology.md) · [Ecosystem Map](https://xiaojiou176-open.github.io/CortexPilot-public/ecosystem/) · [Compatibility Matrix](https://xiaojiou176-open.github.io/CortexPilot-public/compatibility/) · [Agent Starter Kits](https://xiaojiou176-open.github.io/CortexPilot-public/agent-starters/) · [Integration Guide](https://xiaojiou176-open.github.io/CortexPilot-public/integrations/) · [Skills Guide](https://xiaojiou176-open.github.io/CortexPilot-public/skills/) · [AI + MCP + API Surfaces](https://xiaojiou176-open.github.io/CortexPilot-public/ai-surfaces/) · [MCP Quickstart](https://xiaojiou176-open.github.io/CortexPilot-public/mcp/) · [API Quickstart](https://xiaojiou176-open.github.io/CortexPilot-public/api/) · [Builder Quickstart](https://xiaojiou176-open.github.io/CortexPilot-public/builders/) · [Use Cases](https://xiaojiou176-open.github.io/CortexPilot-public/use-cases/) · [Client Entry Points](packages/frontend-api-client/README.md) · [Contract Entry Points](packages/frontend-api-contract/docs/README.md) · [Spec](docs/specs/00_SPEC.md) · [Releases](https://github.com/xiaojiou176-open/CortexPilot-public/releases)
21+
[Quickstart](#quickstart) · [First Proven Workflow](https://xiaojiou176-open.github.io/CortexPilot-public/use-cases/) · [Compatibility Matrix](https://xiaojiou176-open.github.io/CortexPilot-public/compatibility/) · [Docs](docs/README.md) · [Architecture](docs/architecture/runtime-topology.md) · [AI + MCP + API Surfaces](https://xiaojiou176-open.github.io/CortexPilot-public/ai-surfaces/) · [Builder Quickstart](https://xiaojiou176-open.github.io/CortexPilot-public/builders/) · [Releases](https://github.com/xiaojiou176-open/CortexPilot-public/releases)
3822

3923
![CortexPilot studio preview card](docs/assets/storefront/cortexpilot-studio-preview.svg)
4024

4125
![CortexPilot command tower flow](docs/assets/storefront/hero-command-tower.svg)
4226

27+
## Open The Right Door
28+
29+
| If you're here to... | Open this first |
30+
| --- | --- |
31+
| evaluate the product story | [First Proven Workflow](https://xiaojiou176-open.github.io/CortexPilot-public/use-cases/) |
32+
| choose the right Codex / Claude Code / OpenClaw / MCP / skills / builder path | [Compatibility Matrix](https://xiaojiou176-open.github.io/CortexPilot-public/compatibility/) |
33+
| build on the protocol or package surfaces | [AI + MCP + API Surfaces](https://xiaojiou176-open.github.io/CortexPilot-public/ai-surfaces/) and [Builder Quickstart](https://xiaojiou176-open.github.io/CortexPilot-public/builders/) |
34+
4335
The default public loop is simple: **start one workflow case, watch it move
4436
through Command Tower, then inspect Proof & Replay before you trust the
4537
outcome**.
@@ -55,18 +47,23 @@ paths:
5547
| validate the smallest governed path | `CORTEXPILOT_HOST_COMPAT=1 bash scripts/test_quick.sh --no-related` | the quickest repo-side proof path without pretending the full system already ran |
5648
| inspect what the system records | open the run list and `.runtime-cache/` after the quick path | a concrete evidence bundle and replay surface, not just a shell success line |
5749

50+
A clean first pass should let you:
51+
52+
- create one task from the PM surface
53+
- watch that task appear in **Command Tower**
54+
- confirm the linked **Workflow Case**
55+
- inspect **Proof & Replay** before trusting the result
56+
57+
For the public product story, the current official first proven workflow is
58+
[`news_digest`](https://xiaojiou176-open.github.io/CortexPilot-public/use-cases/).
59+
`topic_brief` and `page_brief` are still public showcase paths, not equally
60+
release-proven baselines.
61+
5862
If this repository is close to your use case, star it to track the first public
5963
release, new task templates, and storefront updates.
6064

61-
The integration / skills / MCP / builder pages now also carry more copy-paste
62-
drop-in recipes, so external Codex / Claude Code / OpenClaw teams do not have
63-
to reconstruct the vendored-skill, stdio-MCP, and builder-starter path from
64-
source files alone.
65-
66-
The host-compatible pre-commit lane now routes repo-owned `scripts/*.py` hooks
67-
through `bash scripts/run_governance_py.sh`, so the quality gate stays
68-
deterministic without leaving repo-local `__pycache__` residue behind after a
69-
clean run.
65+
If you need contributor setup instead of product evaluation, jump to the
66+
[30-minute onboarding guide](docs/runbooks/onboarding-30min.md).
7067

7168
## Why CortexPilot Exists
7269

@@ -76,87 +73,21 @@ workflow case, and rerun it without guessing?**
7673

7774
This repository combines:
7875

79-
- **Command Tower**: one operator surface for governed AI agents, MCP tools, and live run visibility
80-
- **Workflow Cases**: one stable operating record that ties request, queue, verdict, and linked runs together
81-
- **Proof & Replay**: one place to inspect evidence bundles, compare reruns, and replay failures without guessing
82-
- **Operator surfaces**: use the web dashboard or desktop shell to watch and control the same system
83-
- **Role Contract preview**: intake planning can now expose a resolved role binding summary
84-
(prompt ref, MCP bundle ref, runtime binding, fail-closed posture) before execution starts,
85-
while handoff remains a summary/risk evidence surface instead of rewriting the task contract
86-
- **Role binding receipt**: PM-facing `run_intake(...)` responses and run manifests now
87-
carry a contract-derived `role_binding_summary`, so skills / MCP / runtime bindings stay
88-
readable after execution without pretending that summary has execution authority
89-
- **Role binding read model**: run detail now also exposes a stable
90-
`role_binding_read_model` so persisted bundle/runtime state is readable from
91-
read-only surfaces by projecting `contract.json` without promoting that read
92-
model into execution authority
93-
- **Skills bundle surface**: qualifying delivery roles now resolve
94-
`skills_bundle_ref` from the repo-owned `policies/skills_bundle_registry.json`
95-
surface, so bundle status is no longer a placeholder-only field
96-
- **Workflow case read model**: control-plane workflow reads now expose a
97-
`workflow_case_read_model` that points back to the latest linked run's
98-
persisted `role_binding_summary`, keeping workflow/control-plane reads
99-
stable without inventing a second execution authority
100-
- **Workflow detail read-only projection**: dashboard and desktop Workflow Case
101-
detail views now render that `workflow_case_read_model` directly, so
102-
operators can inspect bundle/runtime posture from the current case surface
103-
while `task_contract` remains the only execution authority
104-
- **Prompt 8 contract convergence**: `docs/api/openapi.cortexpilot.json` plus
105-
generated `@cortexpilot/frontend-api-contract` artifacts now publish
106-
run/workflow route bindings and `RoleBindingReadModel` /
107-
`WorkflowCaseReadModel` shapes from one source instead of relying on a
108-
stale helper contract plus hand-written overlays
109-
- **Run Detail read-only projection**: dashboard and desktop Run Detail now
110-
expose `role_binding_read_model` on their primary operator summary surfaces,
111-
so the persisted binding summary is visible where operators already inspect
112-
run status while `task_contract` still owns execution authority
113-
- **Prompt 9 operator catalog**: `/api/agents` now publishes a registry-backed
114-
role catalog, `/api/contracts` now exposes a normalized contract inspector
115-
record, and dashboard/desktop `Agents` + `Contracts` pages project the same
116-
bundle/runtime truth as read-only operator surfaces without becoming
117-
execution authority or edit controls
118-
- **Prompt 10 role configuration desk**: role defaults now have a repo-owned
119-
control-plane overlay in `policies/role_config_registry.json`, plus
120-
preview/apply API surfaces for `system_prompt_ref`, `skills_bundle_ref`,
121-
`mcp_bundle_ref`, and role-level `runtime_binding`; the `Agents` pages act as
122-
the primary control desk while `Contracts` stays inspector-first and
123-
`task_contract` remains the only execution authority
124-
- **Prompt 10 runtime capability truth**: intake preview, run manifests,
125-
operator copilot, `Contracts`, and `Run Detail` now also surface a derived
126-
runtime capability summary (`lane`, `compat_api_mode`, `provider_status`,
127-
`tool_execution`) so runtime/provider posture is readable without pretending
128-
the system already has full tool parity or runtime replaceability
129-
- **Prompt 10 smoke-gate hardening**: staged dashboard smoke builds now keep
130-
their dependency-install log path recreated on each run, and
131-
`apps/dashboard/lib/types.ts` now explicitly re-exports task-pack/runtime
132-
helper values so UI-audit builds fail on product regressions instead of
133-
brittle staging/export drift
134-
- **Prompt 10 clean-room recovery hardening**: empty-runtime recovery now
135-
reinstalls package-local `frontend-api-client` dependencies before it runs
136-
the node smoke bundle, so clean-room verification keeps testing the package
137-
itself instead of failing on missing local installs
138-
- **Prompt 10 clean-room cleanup hardening**: clean-room recovery now runs the
139-
repo-owned workspace-module cleanup before its broad runtime `rm -rf` sweep,
140-
and that cleanup path can now quarantine stubborn `apps/dashboard/node_modules`
141-
residue before deletion, so the recovery lane does not abort on transient
142-
bind-mounted module trees
143-
- **Prompt 10 quick-gate decoupling**: the `cortexpilot_orch.contract`
144-
package now lazy-loads `compiler` / `validator` entrypoints, so Quick
145-
Feedback governance scripts can import `ContractValidator` and schedule
146-
boundary checks without accidentally pulling the runtime-provider stack or
147-
requiring `httpx` on light governance Python paths
148-
- **Quick Feedback light path**: role-config runtime capability summaries now
149-
resolve through a lightweight provider-capability helper, so control-plane
150-
previews keep their fail-closed provider posture without forcing GitHub
151-
quick-path governance checks to import full runtime transport dependencies;
152-
the staged dashboard UI-audit workspace now also copies the required
153-
`packages/frontend-*` sources into its temporary root so Next/Turbopack does
154-
not reject out-of-root symlinks during smoke builds, and repeated pnpm
155-
`ERR_PNPM_ENOENT` recovery now escalates from fresh-store retries to a
156-
workspace-local store path instead of repeating the same failing copy route,
157-
while `provider_resolution` keeps a dead-code-clean compatibility export
158-
surface for callers that still import lightweight helper names from the
159-
runtime module
76+
- **Command Tower**: one operator surface for governed AI work, live run visibility, and queue posture
77+
- **Workflow Cases**: one stable operating record that ties request, verdict, proof, and linked runs together
78+
- **Proof & Replay**: one place to inspect evidence bundles, compare reruns, and replay failures before promotion
79+
- **Operator surfaces**: a web dashboard plus a macOS desktop shell for the same control plane
80+
- **Read-only inspection surfaces**: repo-local MCP, API, and contract read models that expose truth without turning mirrors into execution authority
81+
- **Governed boundaries**: fail-closed gates for CI, host safety, repo hygiene, and public-proof honesty
82+
83+
If you need the deeper bundle/runtime/read-model details, open the focused
84+
entrypoints instead of treating the root README like the whole control-plane
85+
manual:
86+
87+
- [AI + MCP + API Surfaces](https://xiaojiou176-open.github.io/CortexPilot-public/ai-surfaces/)
88+
- [Builder Quickstart](https://xiaojiou176-open.github.io/CortexPilot-public/builders/)
89+
- [Contract Entry Points](packages/frontend-api-contract/docs/README.md)
90+
- [Spec](docs/specs/00_SPEC.md)
16091

16192
## Quickstart
16293

@@ -532,17 +463,20 @@ current private reporting path on the live public repository. An additional
532463
verified fallback private channel is not yet published and should not be
533464
assumed.
534465

535-
Current repo-side verification entrypoints:
466+
Default local verification path:
536467

537468
```bash
538-
npm run test
469+
npm run ci
539470
npm run test:quick
540-
bash scripts/check_repo_hygiene.sh
541-
npm run scan:workflow-security
542-
npm run scan:trivy
543-
npm run security:scan:closeout
471+
npm run test
544472
```
545473

474+
`npm run ci` is now the hosted-aligned local fast gate. Use
475+
`npm run ci:strict`, `npm run docs:check`, `bash scripts/check_repo_hygiene.sh`,
476+
`npm run scan:workflow-security`, `npm run scan:trivy`, and
477+
`npm run security:scan:closeout` only when you intentionally want the stricter
478+
closeout/manual layers.
479+
546480
`npm run test:quick` now expects the dashboard clean-room install gate to
547481
prove `jsdom` itself can load, instead of pinning success to the presence of a
548482
specific transitive dependency layout such as `data-urls`.

apps/dashboard/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ finished consumer product.
8282
- The dashboard public-docs resolver still treats `/integrations/`,
8383
`/skills/`, and `/compatibility/` as first-class public docs routes so
8484
public-docs base overrides do not strand those CTA links on app-local paths.
85-
- The same public-home polish keeps the explicit `Open use-case guide` side
85+
- The same public-home polish keeps the explicit `See first proven workflow` side
8686
door routed through the public-docs resolver, so the proof-first walkthrough
8787
stays visible without turning the dashboard back into a second full routing
8888
matrix.

apps/dashboard/next-env.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/// <reference types="next" />
22
/// <reference types="next/image-types/global" />
3-
import "./.next/types/routes.d.ts";
3+
import "./.next-storefront-final-capture-english-prod/types/routes.d.ts";
44

55
// NOTE: This file should not be edited
66
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.

0 commit comments

Comments
 (0)