Client-safe visual walkthrough of the agent/automation boundaries (PRs #114–#118). All captures use demo/sandbox data only — no real names, emails, tokens, secrets, provider raw payloads, DevTools panels, or sensitive IDs.
Architecture: ARCHITECTURE.md · Index: README.md ·
Asset checklist + PII review: assets/README.md
The Career panels are feature-flagged and off by default. They render in the dashboard only after the explicit provider-consent checkbox is checked. Each panel produces proposals and structured content for manual review — no tool runs, no mutation, no persistence.
pnpm install
pnpm --filter @devflow/career-core build
pnpm --filter @devflow/career-sync build
pnpm --filter applyflow dev # http://localhost:3010/dashboard- Open
/dashboard→ Carregar demo (loads ~20 fictitious applications). - Check the explicit provider-consent checkbox to reveal the Career panels.
- Interact with each panel below — every action stays in-memory and review-required.
Structured chat messages are converted into deterministic career agent requests. No tool runs and no application/message/profile/provider/external system is changed without policy validation and human approval.
A chat message (action + free text) is normalized into an orchestration request and returns a
client-safe agent response with tool proposals — each one ready_for_review, never executed.
Proposals expose toolName, status, and risk only. The Proposal review card shows a read-only
input preview and the human gate: Approve once, Cancel, Copy structured response.
When the adapter is disabled, the request is blocked deterministically: the trace records
chat_request_received → human_review_required: Adapter is disabled by feature flag. Deny by
default, with a stable, client-safe explanation.
Responsive layout with no overflow; the same read-only / in-memory / manual-review guarantees
(Read-only, Ephemeral, No automatic changes) are visible on small viewports.
The LLM produces structured content inside a known schema for an agent/task the server already resolved. It does not choose intent, agent, capabilities, tools, risk, approval, or execution mode. Default provider is the deterministic mock (no network, no cost).
| Capture | |
|---|---|
| Completed draft (structured output + trace) | ![]() |
| Tablet | ![]() |
| Mobile | ![]() |
The output is client-safe content for review and copy only — it carries no executable tool calls and is never auto-applied.
Runs exactly one allowlisted, non-destructive tool, and only after an explicit, request-scoped approval. No auto-apply, no send, no submit, no scheduling, no background execution, no persistence. Prohibited actions are not even rendered.
| Capture | |
|---|---|
| Completed run (proposal → approval → single execution → trace) | ![]() |
| Tablet | ![]() |
| Mobile | ![]() |
The panel surfaces the server-derived proposal, the single_execution approval, the provider
badge, and the execution trace. Status flags confirm the guarantees (e.g. scheduled false,
persisted false, executed-externally false). A new run always requires a new approval.
The Career Chat Workspace exposes three new deterministic actions — Analisar currículo
(analyze_resume), Verificar compatibilidade ATS (analyze_ats_compatibility), and
Planejar estratégia de carreira (plan_career_strategy). Selecting one reveals review-only
specialist inputs (resume bullets/skills, job requirements, or target roles + availability).
Each request returns a deterministic result rendered in-place:
- Resume — structure score (0–100), strengths, weaknesses, risks, recommendations.
- ATS — bounded compatibility score (0–100), matched/missing keywords, structure risks. The score is computed by a documented rubric, never by the LLM.
- Career strategy — positioning, ≤ 3 priority roles, ≤ 3 skill priorities, 30/60/90-day plan, risks.
Every result shows the selected agent, the score when applicable, evidence, risks, recommendations,
and a non-executable review proposal (career.prepare_*_review + career.export_review_payload).
No tool runs, no /career-tools/invoke call, no mutation, no persistence — reviewRequired: true,
safeForClient: true, hasToken: false, persisted: false, toolExecutionOccurred: false.
Reproduce: load the demo, consent, pick a specialist action, fill the review-only inputs, send. The optional controlled LLM draft (mock by default) only explains the deterministic result.
- Deterministic-first — same input → same plan/proposal across chat, LLM, and automation.
- Server-authoritative — the client never sets tool, capability, risk, plan, or approval.
- Human-in-the-loop — every panel is review-required; automation needs an explicit approval.
- No auto-apply / no silent persistence — outputs are proposals/content; nothing is saved.
- Temporary approvals — request-scoped, revocable, never remembered.
- LLM without authority — structured content only, no decisions, mock by default.
- Automation without permanent autonomy — one tool run, then stop; no schedule/background.
- Viewport desktop 1024–1440 wide; tablet/mobile per panel.
- PNG · Chromium headless (Playwright) · demo data only.
- Manual PII review per
assets/README.md: no tokens, secrets, personal data, DevTools, or sensitive IDs in any committed capture.









