Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
2bf24ac
feat: add capital readiness activity policy engine
support371 Jul 17, 2026
b498613
test: cover capital readiness policy controls
support371 Jul 17, 2026
ac4ae5e
feat: define capital readiness operating schema
support371 Jul 17, 2026
77945e0
build: add capital readiness Prisma promotion
support371 Jul 17, 2026
0c0b7b5
build: include capital readiness schema promotion
support371 Jul 17, 2026
d3e6b7a
feat: add capital readiness workflow engine
support371 Jul 17, 2026
88433d5
test: cover capital readiness workflow gates
support371 Jul 17, 2026
b1587fa
feat: add capital readiness request validation
support371 Jul 17, 2026
13cdf5a
feat: add capital readiness persistence services
support371 Jul 17, 2026
994fe49
feat: enforce capital readiness workspace access
support371 Jul 17, 2026
7db3d68
feat: add capital opportunity API
support371 Jul 17, 2026
b2ac622
feat: add capital command center snapshot API
support371 Jul 17, 2026
18b370b
feat: add capital policy evaluation API
support371 Jul 17, 2026
84effcf
feat: add readiness calculation API
support371 Jul 17, 2026
47874f3
feat: add controlled matter transition API
support371 Jul 17, 2026
bb3d3c3
feat: expose accessible capital workspaces
support371 Jul 17, 2026
21619e3
feat: add capital readiness command center UI
support371 Jul 17, 2026
e3c31cf
feat: expose capital readiness command center page
support371 Jul 17, 2026
7a6e4a3
feat: add capital readiness navigation
support371 Jul 17, 2026
41dd488
feat: add version-bound capital approvals
support371 Jul 17, 2026
783df0f
feat: validate capital approval commands
support371 Jul 17, 2026
6a030ac
feat: add capital approval request API
support371 Jul 17, 2026
3100c59
feat: add independent approval decisions
support371 Jul 17, 2026
aa4bf9a
feat: define complete capital command contract
support371 Jul 17, 2026
2da75ee
feat: implement complete capital command executor
support371 Jul 17, 2026
44516ca
feat: expose controlled capital command API
support371 Jul 17, 2026
f30c1d0
fix: make capital schema promotion composable
support371 Jul 17, 2026
03a9fc0
fix: allow approved governed AI communication
support371 Jul 17, 2026
1515e26
ci: capture capital readiness verification diagnostics
support371 Jul 17, 2026
dba52bf
fix: use composable union for capital command validation
support371 Jul 17, 2026
0b5fe10
ci: use stable actions for capital diagnostics
support371 Jul 17, 2026
e1b74e1
ci: capture setup and verification failures unconditionally
support371 Jul 17, 2026
ad13832
security: hard-block externally gated capital commands
support371 Jul 17, 2026
aa64101
feat: complete capital lifecycle operations
support371 Jul 17, 2026
28343dd
feat: expose role-separated capital lifecycle API
support371 Jul 17, 2026
e80103b
feat: implement evidence-derived closing authorization
support371 Jul 17, 2026
0cedb8b
feat: expose evidence-derived closing authorization
support371 Jul 17, 2026
dc00025
test: verify capital command and lifecycle contracts
support371 Jul 17, 2026
21e6337
ci: add dependency-free capital contract verification
support371 Jul 17, 2026
cb9b964
ci: enforce capital contract verification
support371 Jul 17, 2026
6f959ec
docs: add capital readiness operator handbook
support371 Jul 17, 2026
cbe8146
docs: add capital readiness OpenAPI contract
support371 Jul 17, 2026
d24b2cb
docs: add controlled production activation runbook
support371 Jul 17, 2026
ab18544
build: add deterministic capital review migration generator
support371 Jul 17, 2026
2e769ab
docs: add documentation index
support371 Jul 17, 2026
36319b1
docs: add capital delivery manifest
support371 Jul 17, 2026
b7f1b9e
build: promote capital schema before Prisma generation
support371 Jul 17, 2026
967e0f5
fix: separate validated lifecycle input from Zod inference
support371 Jul 17, 2026
57a24d0
docs: link capital readiness execution gates
support371 Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 112 additions & 0 deletions .github/workflows/capital-readiness-verification.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Capital Readiness Verification

on:
workflow_dispatch:
pull_request:
branches:
- main
paths:
- "prisma/**"
- "scripts/apply-capital-readiness-prisma-models.mjs"
- "src/lib/capital-readiness/**"
- "src/app/api/capital-readiness/**"
- "src/app/app/command-center/capital-readiness/**"
- "src/components/command-center/CapitalReadinessCommandCenter.tsx"
- ".github/workflows/capital-readiness-verification.yml"
- "package.json"

permissions:
contents: read
pull-requests: write

concurrency:
group: capital-readiness-verification-${{ github.ref }}
cancel-in-progress: true

jobs:
verify:
runs-on: ubuntu-22.04
timeout-minutes: 30
env:
NODE_ENV: test
JWT_SECRET: ci-test-secret-min-32-characters-long-placeholder
POSTGRES_PRISMA_URL: postgresql://ci:ci@localhost:5432/gem_ci
POSTGRES_URL_NON_POOLING: postgresql://ci:ci@localhost:5432/gem_ci
NEXT_PUBLIC_APP_URL: https://www.gemcybersecurityassist.com
NEXT_PUBLIC_APP_NAME: GEM Enterprise
NEXT_PUBLIC_AI_DISCLOSURE_TEXT: GEM Concierge is an AI assistant. Responses are informational and require human review for sensitive decisions.
AUDIT_ENABLED: "true"
SMTP_HOST: ""
SMTP_PORT: "587"
SMTP_USER: ""
SMTP_PASS: ""
CRON_SECRET: ci-cron-secret

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Capture environment, installation, and verification
id: verification
continue-on-error: true
shell: bash
run: |
set +e
: > capital-readiness-verify.log
{
echo "## Environment"
node --version
npm --version
echo "## Enable pnpm"
npm install --global pnpm@10.28.0
pnpm --version
echo "## Install dependencies"
pnpm install --frozen-lockfile
echo "## Verify"
pnpm run verify
} 2>&1 | tee -a capital-readiness-verify.log
status=${PIPESTATUS[0]}
echo "exit_code=$status" >> "$GITHUB_OUTPUT"
exit 0

- name: Ensure diagnostic log exists
if: always()
shell: bash
run: |
test -f capital-readiness-verify.log || echo "Verification did not reach the diagnostic shell step." > capital-readiness-verify.log

- name: Upload verification log
if: always()
uses: actions/upload-artifact@v4
with:
name: capital-readiness-verification-log
path: capital-readiness-verify.log
if-no-files-found: error
retention-days: 14

- name: Post verification result to pull request
if: always() && github.event_name == 'pull_request'
uses: actions/github-script@v7
env:
VERIFY_EXIT_CODE: ${{ steps.verification.outputs.exit_code }}
with:
script: |
const fs = require('fs');
const exitCode = process.env.VERIFY_EXIT_CODE || 'bootstrap_failure';
const log = fs.readFileSync('capital-readiness-verify.log', 'utf8');
const tail = log.split('\n').slice(-220).join('\n');
const marker = '<!-- capital-readiness-verification -->';
const body = `${marker}\n## Capital Readiness Verification\n\n**Exit code:** \`${exitCode}\`\n\n<details><summary>Verification log tail</summary>\n\n\`\`\`text\n${tail.slice(0, 60000)}\n\`\`\`\n</details>`;
const { owner, repo } = context.repo;
const issue_number = context.issue.number;
const comments = await github.paginate(github.rest.issues.listComments, { owner, repo, issue_number, per_page: 100 });
const existing = comments.find((comment) => comment.body?.includes(marker));
if (existing) {
await github.rest.issues.updateComment({ owner, repo, comment_id: existing.id, body });
} else {
await github.rest.issues.createComment({ owner, repo, issue_number, body });
}

- name: Enforce verification result
if: always() && steps.verification.outputs.exit_code != '0'
run: exit 1
Loading
Loading