CRE Prospecting Integration Report — 2026-08-17
Status: Phase 5 complete — skill, skillpack, parity, and governance landed on main.
Build timeline: P0 discovery (2026-08-16) → P1 core engine → P3 outreach engine → P4 residential rails → P5 skill sync + verification (this session).
Commits in this session
| Commit |
Description |
| (this commit) |
P5: canonical CRE Prospecting Virtuoso skill, Boss parity module, governance sync, evidence artifact |
Skill deliverables
| Artifact |
Path |
State |
| Canonical skill |
skills/cre-prospecting-virtuoso/SKILL.md v1.0 |
Created |
| Boss parity module |
skills/cre-prospecting-virtuoso/references/boss_agent_skillpack_cre.md |
Created (served as mizoki://skills/cre-skillpack) |
| Derived copy |
.claude/skills/cre-prospecting-virtuoso/SKILL.md |
Byte-identical to canonical |
| BOSS_AGENT_SKILLS.md |
.claude/skills/BOSS_AGENT_SKILLS.md |
CRE promoted to section 1 (governed platform virtuoso) |
| Boss skillpack |
skills/miz-oki-platform-expert/references/boss_agent_skillpack.md |
CRE section build state updated: designed → deployed-ci |
| Content lockfile |
.claude/skills/boss_specialist_skills.lock.json |
Regenerated via --fix |
Registered profiles (7)
| Profile |
Role |
Scope |
cre_prospecting_virtuoso |
DATA_CAUSAL |
Parent orchestrator |
commercial_tenant_prospecting_virtuoso |
DATA_CAUSAL |
Occupier rosters, lease urgency, SF/dock/power fit |
residential_prospecting_virtuoso |
DATA_CAUSAL |
Fair Housing + TCPA + DNC rails |
property_intelligence_virtuoso |
DATA_CAUSAL |
Flyer/listing extraction |
submarket_intelligence_virtuoso |
DATA_CAUSAL |
Freshness-contracted market data |
outreach_authoring_virtuoso |
CREATIVE_MM |
Voice doctrine, dual CTA, claim discipline |
crm_pipeline_virtuoso |
DATA_CAUSAL |
CRM state, follow-up, opt-out |
Boss skillpack rules (7 "never" rules)
- Never send an email — draft only, always
- Never state a market figure the freshness contract hasn't marked verified
- Never use an unattested performance claim
- Never target/score residential prospects on protected classes, familial-status proxies, or financial distress
- Never invent a tool name
- Never write to KG/BigQuery/CRM outside canonical ingestion
- Never report a campaign rate as incremental without a registered holdout
Deploy state (measured)
| Cell |
Revision |
Status |
Auth |
Tests (measured) |
38 cre-prospecting-core |
cre-prospecting-core-00003-bfq |
deployed-ci (runs 32040792956 + 32041998824) |
IAM-locked (unauth 403, invoker mizoki-platform@ only), caller gate 200 |
244 passed |
39 cre-outreach-engine |
cre-outreach-engine-00004-wfz |
deployed-ci (runs 32040792956 + 32041998824) |
IAM-locked (unauth 403, auto_send=false permanent), caller gate 200 |
119 passed |
| Shared mappers |
— |
passing |
— |
29 passed (byte-identical twins) |
Total CRE tests: 392 passed. The previously-failing test_cloudbuild_is_iam_locked_and_correctly_named was fixed: the test asserted --update-env-vars but the cloudbuild correctly uses --set-env-vars (replace semantics, intentional governance gate).
Deploy workflow: .github/workflows/deploy-cre-prospecting.yml (dispatch-only). First successful CI run: 32040792956 (owner-dispatched 2026-08-17).
Remaining wiring items
| Item |
Status |
Owner |
| SELF_URL / ALLOWED_CALLER_SA env vars |
wired (run 32041998824) — caller gates return 200 |
Done |
| CRE_SUBJECT_SALT |
wired — real 256-bit salt via Secret Manager, DSAR-ready |
Done |
| ANTHROPIC_API_KEY / GEMINI_API_KEY |
wired — mounted as secrets on both cells |
Done |
| Apollo.io connector + DPA |
not_configured |
Operator (O8) |
| Hunter.io connector + DPA |
not_configured |
Operator (O8) |
| Google Maps/Geocoding API key |
placeholder — secret created in Secret Manager but needs real key |
Operator |
| Pipedrive connector |
not_configured |
Operator |
| Microsoft Graph/Outlook transport |
not_configured |
Operator |
| CoStar data licensing |
not_configured |
Owner (O7) |
| LoopNet data licensing |
not_configured |
Owner (O7) |
domains/cre ontology materialization |
deferred — materializes at first mapped intake |
Automatic |
| Scheduler SA for follow-up jobs |
not set |
Operator |
| Provider transports (Graph/Gmail/Pipedrive) |
not set |
Operator |
Ontology state
- OCP-20260816-001: approved (architecture level, owner 2026-08-16)
ontology/proposals/OCP-20260816-001.md: present on main
ontology/domains/cre/: not materialized (by design — deferred to Cell 38's first mapped intake)
ontology/registry.yaml: CRE listed in layers.domains.planned with OCP reference
Governance compliance
| Check |
Result |
boss_specialist_skills_sync.py --check |
OK — 10/10 governed skills |
skills_sync.py --check |
OK — all skill copies byte-identical, versions in parity |
ontology_skills_sync.py --check |
OK (8 profiles; governance preserved; legacy skills intact) |
| Canonical/derived SKILL.md parity |
Byte-identical (cp from canonical) |
| Boss skillpack CRE section |
Updated: designed → deployed-ci |
| BOSS_AGENT_SKILLS.md registry |
Updated: CRE in section 1 |
| 7 "never" rules in skill and skillpack |
Present in both |
| Standing workflows (5) |
Documented in skill and skillpack |
| Auto-include routing |
legal_compliance_virtuoso on residential/outbound; ontology_kg_virtuoso on intake; finance_virtuoso on deal economics |