* [c2d8f8fa] Write Port AI Builder competitive-positioning doc (#722) * [c2d8f8fa] docs(backend): add Port AI Builder competitive-positioning analysis * [c2d8f8fa] docs(backend): fix all wrong file:line citations in Port AI Builder positioning doc --------- Co-authored-by: Backend Developer 1 <be-dev-1@roboco.tech> * [c232e514] Fix PR #755 review findings: wording accuracy + branch staleness (#784) * [4815da95] docs(analysis): fix pr_gate wording findings on CEO-check scope and conventions default (#776) Co-authored-by: Backend Developer 1 <be-dev-1@roboco.tech> * [c0c2ac32] Resolve CI blocker F-397f9453 on PR #784 head (#791) * [c0c2ac32] fix(docs): reflow hard-wrapped prose in competitive-positioning doc to pass quality gate * [c0c2ac32] docs(qa): add CI fix note for reflow-check on competitive positioning doc --------- Co-authored-by: Backend Developer 2 <be-dev-2@roboco.tech> Co-authored-by: Backend Documenter <be-doc@roboco.tech> * [26e8731d] Sync branch and resolve pr_gate CI blocker 397f9453 on PR #784 head (#788) * [26e8731d] Document CI staleness pattern in lifecycle artifacts script docstring * [26e8731d] Remove false docstring claiming docs/ is outside CI paths filter The docstring at lines 13-15 claimed docs/ is outside the CI workflow's paths filter, making doc-only commits not trigger CI. This is false — ci.yml lists docs/** at line 44 (push) and line 83 (pull_request). The stale-CI diagnosis built on this false premise is incorrect. Removing the false note per finding F-000d3430. * [26e8731d] docs(contributing): list markdown reflow check in make quality gate description CONTRIBUTING.md's make quality comment listed only 4 checks (ruff format, ruff check, mypy, pytest) but the Makefile quality target runs 8+ including the markdown prose reflow check (scripts/reflow_md.py --check). That omission directly contributed to the CI blocker this task investigated — a contributor reading the old comment would not expect the reflow gate. Added the reflow check to the comment list and a note pointing to make reflow-docs as the auto-fix and docs/rag/standards/markdown-reflow-quality-gate.md for the standard. --------- Co-authored-by: Backend Developer 2 <be-dev-2@roboco.tech> Co-authored-by: Backend Documenter <be-doc@roboco.tech> --------- Co-authored-by: roboco-app[bot] <302741806+roboco-app[bot]@users.noreply.github.com> Co-authored-by: Backend Developer 1 <be-dev-1@roboco.tech> Co-authored-by: Backend Developer 2 <be-dev-2@roboco.tech> Co-authored-by: Backend Documenter <be-doc@roboco.tech> * [f4529578] Reflow CONTRIBUTING.md blockquote to clear reflow-check CI failure on PR #755 (#800) * [f4529578] reflow(contributing): join 3-line blockquote and strip line 31 indent to clear reflow-check * [f4529578] docs(changelog): note CONTRIBUTING.md reflow fix that cleared reflow-check CI gate * [f4529578] docs(changelog): clarify reflow fix unblocks competitive-positioning PR #755 * [f4529578] docs(changelog): add reflow-passthrough detail to CONTRIBUTING.md fix note * [f4529578] docs(changelog): add task ID reference to CONTRIBUTING.md reflow fix entry * [f4529578] docs(changelog): add exact reflow-check exit output to CONTRIBUTING.md fix entry * [12b3bce9] fix(contributing): join blockquote and remove indent to clear reflow-check CI failure (#799) Co-authored-by: Backend Developer 1 <be-dev-1@roboco.tech> --------- Co-authored-by: Backend Developer 1 <be-dev-1@roboco.tech> Co-authored-by: Backend Documenter <be-doc@roboco.tech> Co-authored-by: roboco-app[bot] <302741806+roboco-app[bot]@users.noreply.github.com> --------- Co-authored-by: roboco-app[bot] <302741806+roboco-app[bot]@users.noreply.github.com> Co-authored-by: Backend Developer 1 <be-dev-1@roboco.tech> Co-authored-by: Backend Developer 2 <be-dev-2@roboco.tech> Co-authored-by: Backend Documenter <be-doc@roboco.tech>
6.8 KiB
Competitive positioning: Port AI Builder vs. RoboCo
Market signal. On 2026-07-14 Port launched "Port AI Builder," billed as the industry-first purpose-built vibe coding experience for platform engineering. Its three advertised pillars: human-in-the-loop review and governance, a "Context Lake" for org-specific context, and baked-in domain skills (SRE, DevOps, security, AI governance). Source: https://www.port.io/news/port-ai-builder-announcement
This doc maps each pillar to the concrete RoboCo backend surface that already serves the same purpose, citing the actual implementation, and states whether RoboCo is equivalent, superior, or genuinely behind on each.
1. Human-in-the-loop review and governance
RoboCo surface: the CEO-approval workflow.
- RoboCo has a shared CEO-check helper,
require_ceo_role()(roboco/api/deps.py:627), which unifies the orchestrator-router and release-handler gates; the task-approval endpoints below enforce the same CEO-only rule inline. - The lifecycle spec (
roboco/foundation/policy/lifecycle.py:358-369) encodesAWAITING_CEO_APPROVAL -> COMPLETED(ceo_approve) andAWAITING_CEO_APPROVAL -> NEEDS_REVISION(ceo_reject) asfrozenset({Role.CEO})-only transitions — no other role can execute either. POST /api/tasks/{id}/ceo-approve(roboco/api/routes/tasks.py:2171-2224) enforces the CEO-only check inline and additionally requires a substantive note (_MIN_NOTES_CHARS, >= 20 chars) recording why the work is approved for production — an audit trail Port's announcement doesn't detail at this granularity.POST /api/tasks/{id}/approve-and-merge(roboco/api/routes/tasks.py:2266-2348) is the merge-to-master step itself: CEO-only, requires an existing PR (pr_number), and callsGitService.merge_pr_for_taskto squash-merge.TaskService.ceo_approve()(roboco/services/task.py:7256) additionally refuses to approve unless the work session's PR is alreadymerged— the human sign-off is structurally the last gate before a task can reachcompleted.- Beneath the CEO gate, every task already passes an automated PR-review gate (
awaiting_pr_review, a dedicatedpr_reviewerrole) and a QA pass before it ever reaches the CEO — governance is layered, not a single checkbox.
Verdict: functionally equivalent, arguably superior. RoboCo's CEO gate is a hard, role-checked, single-source-of-truth state-machine transition with a mandatory audit note and a PR-merged precondition, sitting on top of an independent PR-review + QA layer. Port's write-up describes review/governance as a feature of its builder UI; RoboCo's equivalent is enforced at the state machine and API layer, not just presented in a UI.
2. Context Lake for org-specific context
RoboCo surface: the in-house RAG/knowledge-base system (OptimalService).
OptimalService(roboco/services/optimal.py:158) is a plugin-based architecture over PostgreSQL + pgvector with a registry of indexes (PLUGIN_REGISTRY,roboco/services/optimal.py:144-155) covering documentation, journals, errors, standards, decisions, reviews, learnings, playbooks, and CEO vault notes — i.e. org-specific context accumulated from every agent's actual work, not a generic corpus.OptimalService.search()(roboco/services/optimal.py:1230) embeds a query once and runs every index's hybrid (vector + keyword) search concurrently;OptimalService.query()(roboco/services/optimal.py:1339) aggregates citations across indexes and synthesizes a single answer.- These are exposed to every agent as MCP tools:
roboco_kb_search(roboco/mcp/optimal_server.py:92, semantic search) androboco_ask_mentor(roboco/mcp/optimal_server.py:393, conversational RAG with follow-up context). - Retrieval isn't only pull-based:
EvidenceRepo.similar_memory()(roboco/services/gateway/evidence_repo.py:465) proactively injects the top-K relevance-floored institutional-memory hits (distilled learnings, approved playbooks, CEO vault notes) into an agent'scontext_briefingat claim time — an agent gets relevant org context pushed to it before it has to think to search.
Verdict: functionally equivalent. RoboCo's RAG stack is the direct analogue of a "Context Lake": org-specific, continuously fed by real agent output (decisions, learnings, journals, reviews), searchable and synthesizable, and additionally push-injected at claim time rather than being pull-only. No gap identified; the branding differs, the capability does not.
3. Domain skills (SRE, DevOps, security, AI governance) baked in
RoboCo surface: per-role/team prompts + the architectural-conventions gate.
- Every agent's system prompt is composed (
compose_prompt) from layered role/team prompt files underagents/prompts/— e.g.agents/prompts/roles/developer.mdand the per-team file (agents/prompts/teams/backend.md) — which embed the team's tech stack, quality-gate commands, and domain conventions directly into every spawn, not as optional documentation. - Security/coding/workflow domain guidance is also retrievable on demand via the
roboco_get_standardsMCP tool, backed byStandardsIndexPlugin(roboco/services/optimal_brain/indexes/standards.py). - Architectural governance is enforced, not advisory:
.roboco/conventions.yml(ROBOCO_CONVENTIONS_ENABLED- default-off for new projects, on in RoboCo's own deployment, which ships a canonical.roboco/conventions.yml) defines which module kinds may hold which definitions; the validator (roboco/conventions/runner.py:42) classifies every changed definition and raisesFindings. Ablock-level finding (a model in a router, a suppressed lint/type check) hard-refuses bothi_am_done(_conventions_gate,roboco/services/gateway/choreographer/_impl.py:2498) and the PR-reviewer'spr_pass(_conventions_guard, same file, line 2540) — the offendingfile:lineplus fix hint is returned in the rejection, and a false positive can only be cleared by committing an explicit, reviewed waiver.
Verdict: functionally equivalent, arguably superior on enforcement. Port advertises domain skills as built-in guidance inside its builder; RoboCo's equivalent is both prompt-embedded guidance (present at every spawn, not opt-in) and a deterministic, code-level enforcement gate that blocks submission on a real violation — a stricter guarantee than "skills baked in" implies for Port.
Overall conclusion
RoboCo has no concrete capability gap versus the Port AI Builder market signal: all three advertised pillars (human-in-the-loop governance, an org-context knowledge base, and baked-in domain-skill enforcement) already exist as real, enforced backend surfaces in RoboCo today, and on two of the three (governance, domain-skill enforcement) RoboCo's mechanism is stricter than what Port's announcement describes — this is a branding/marketing difference, not a functionality difference.