Skip to content

Depth ship (Automation create_project · AI Company triage) — Production Readiness Audit ​

FieldValue
Date2026-09-29
Re-verified2026-09-29 — Backend Pest automation 11/11 + Company AI 6/6; remediations pushed
StatusGo for production — engineering ship-ready; Ops deploy remaining
ScopeTwo catalog MINOR bumps in one ship
Codefeature/automation-create-project-ai-company-triage — Backend #219 · Frontend #217 · Docs #299
CompanionsAutomation create_project 1.4.0 · AI Company triage 1.19.0 · CHANGELOG

Executive summary ​

ModuleCatalogVerdict
Automation create_project + template opportunity_stage_create_project1.3.0 → 1.4.0Go
AI Company triage (get_company / assign_company / add_company_note)1.18.0 → 1.19.0Go

Engineering gates (code, migrate-only catalog, Pest, SPA builder + Playwright e2e coverage, Docs) Pass after remediations below.

Go / No-Go: Go after PR CI green + merge. Ops then migrate-only deploy and staging smoke.


Findings closed (2026-09-29) ​

IDSeverityFindingResolution
B1BlockerCatalogSeeder companion Pest expected automation 1.3.0 while seeder was 1.4.0 (CI fail)Aligned companion expectations; pushed 09ee2616
M1MediumMissing opportunity row still set opportunity_id to payload id (invalid FK risk)Soft-link returns null when opportunity missing; same commit
B2BlockerFrontend create_project UI + Company e2e uncommitted / detached HEADBranch + commit + push Frontend
B3BlockerDocs ship notes / readiness uncommittedThis rollup + companion pages committed on Docs feature branch

Gate matrix (re-verified 2026-09-29) ​

GateAutomation 1.4.0AI Company 1.19.0
Platform freezePass (additive action + tools)Pass
Migrate-only catalog + CatalogSeederPass (1.4.0)Pass (1.19.0)
Action / tool registry + confirm armsPassPass
Soft links + note on triggerPassn/a
PestPass — unit + related-context + workflow catalog (11 automation files subset)Pass — authz + propose/confirm (6)
SPA builder Create Project configPassn/a
Playwright AI suite Company flown/aPass (e2e coverage landed; run npm run test:e2e:ai pre-merge)
Docs / changelog / sidebarPassPass
Feature branch + remoteDoneDone
Merged to origin/mainTodo (await CI)Todo (await CI)

Remaining (operator) ​

#ActionOwnerStatus
1CI green on Backend #219 / Frontend #217 / Docs #299; mergeEngTodo
2Deploy Backend; php artisan migrate --force (central) — no db:seedOpsTodo
3Restart automation / default queuesOpsTodo
4Deploy Frontend SPA (same window as Backend)OpsTodo
5Staging smoke — Create Project workflow; Ask EloSync Company note + unassignOps / QATodo

Migrations to apply (step 2) ​

  1. 2026_09_29_021000_bump_automation_module_version_to_1_4_0
  2. 2026_09_29_021100_bump_ai_module_version_to_1_19_0

Staging smoke detail (step 5) ​

AreaSteps
Automation create_projectEntitle Automation + Projects; apply template opportunity_stage_create_project (or manual Create Project on opportunity.stage_changed); run; confirm Planned project soft-linked + opportunity note
AI Company triagePropose/confirm note + unassign on a company (pending actions UI)

Rollback ​

ModuleRollback
AutomationCatalog down → 1.3.0 after code rollback (no schema beyond catalog)
AICatalog down → 1.18.0 after code rollback (no schema beyond catalog)

Existing workflows using other actions and prior AI triage tools remain unchanged when rolling back only these bumps.


Test evidence (reference) ​

bash
# Backend (Herd PHP 8.5+)
herd php artisan test --compact \
  tests/Unit/Automation/AutomationEngineSupportTest.php \
  tests/Feature/Tenant/Automation/AutomationRelatedContextTest.php \
  tests/Feature/Tenant/Automation/AutomationWorkflowTest.php

herd php artisan test --compact \
  tests/Feature/Tenant/Ai/AiAuthorizationTest.php \
  tests/Feature/Tenant/Ai/AiWriteConfirmationTest.php \
  --filter=company

# Frontend
npm run test:e2e:ai

Official documentation for the EloSync SaaS Platform.