PRD-039 — Agentic Resource & Workforce Coordination Fabric
1. Objetivo
O PRD-039 cria a camada responsável por determinar quem ou qual recurso pode realizar uma tarefa, considerando capacidade, disponibilidade, competências, qualificações, carga, localização, prioridade, custo, SLA e regras organizacionais.
A partir deste PRD, o Agentic Work deixa de apenas decidir:
“O que precisa ser feito?”
e passa a responder também:
“Quem ou o que deve fazer isso?”
2. Contexto Arquitetural
Até aqui temos:
GOAL
↓
TASK
↓
PLAN
↓
CAPABILITY
↓
POLICY
↓
EXECUTION
O PRD-039 introduz:
TASK
↓
RESOURCE REQUIREMENTS
↓
RESOURCE DISCOVERY
↓
QUALIFICATION
↓
AVAILABILITY
↓
CAPACITY
↓
ALLOCATION
↓
ASSIGNMENT
↓
EXECUTION
3. Princípio Fundamental
O Agent não poderá escolher um recurso apenas porque:
“parece ser a melhor pessoa”.
A seleção deverá ser baseada em dados verificáveis.
Candidate
↓
Qualification
↓
Authorization
↓
Availability
↓
Capacity
↓
Policy
↓
Allocation
4. Resource
Um Resource é qualquer entidade capaz de participar de uma operação.
HUMAN
TEAM
AGENT
SERVICE
API
MACHINE
DEVICE
FACILITY
VEHICLE
EXTERNAL_PROVIDER
5. Resource Registry
O sistema deverá possuir um catálogo lógico:
interface Resource {
resourceId: string;
tenantId: string;
type: ResourceType;
name: string;
status: ResourceStatus;
capabilities: string[];
skills: string[];
qualifications: string[];
availability?: AvailabilityRef;
capacity?: CapacityModel;
location?: LocationRef;
metadata?: Record<string, unknown>;
}
6. Resource Types
type ResourceType =
| "HUMAN"
| "TEAM"
| "AGENT"
| "SERVICE"
| "API"
| "MACHINE"
| "DEVICE"
| "FACILITY"
| "VEHICLE"
| "EXTERNAL_PROVIDER";
7. Resource Status
AVAILABLE
BUSY
UNAVAILABLE
OFFLINE
SUSPENDED
MAINTENANCE
EXPIRED
UNKNOWN
UNKNOWN deverá ser tratado explicitamente.
O sistema não deverá interpretar:
UNKNOWN = AVAILABLE
8. Resource Capability
Um recurso pode possuir:
capabilities:
- workPermit.review
- workPermit.approve
- training.review
Mas possuir uma Capability registrada não significa automaticamente possuir autorização.
A Policy continua sendo a autoridade.
9. Skill
Skill representa uma competência operacional.
Exemplos:
industrial-risk
electrical-safety
confined-space
work-permit-review
training-management
10. Qualification
Qualification representa uma comprovação formal.
Exemplo:
Skill:
industrial-risk
Qualification:
NR-10
Valid until:
2027-05-12
11. Skill ≠ Qualification
Uma pessoa pode ter:
skill = electrical-safety
mas não possuir uma certificação válida necessária para determinada operação.
Portanto:
Skill
≠
Qualification
12. Qualification Validation
Antes da atribuição:
Resource
↓
Qualification
↓
valid?
├── YES
└── NO
Qualificações expiradas não poderão satisfazer requisitos obrigatórios.
13. Qualification Temporal Awareness
A validade deverá considerar:
validFrom
validUntil
currentDate
businessCalendar
timezone
Integrando diretamente com PRD-037.
14. Workforce Resource
Para humanos:
interface HumanResource extends Resource {
type: "HUMAN";
userId: string;
organizationalUnitId?: string;
roles: string[];
skills: string[];
qualifications: string[];
supervisorId?: string;
shiftId?: string;
}
15. Organizational Structure
O Resource Fabric deverá compreender:
Organization
└── Division
└── Department
└── Team
└── Employee
Isso permitirá routing baseado em estrutura organizacional.
16. Team Resource
Um Team também será um recurso:
interface TeamResource {
teamId: string;
tenantId: string;
name: string;
members: string[];
skills: string[];
capacity: CapacityModel;
}
17. Team vs Individual Assignment
Uma tarefa poderá ser direcionada para:
TEAM
e posteriormente distribuída para:
USER
ou diretamente:
USER
18. Agent Resource
Agents também podem ser recursos.
Exemplo:
training-agent
risk-agent
decision-agent
notification-agent
Cada agente terá:
capabilities
skills
limits
availability
cost
trust level
19. Human + Agent Workforce
A arquitetura deverá permitir:
Human
+
Agent
+
System
trabalhando no mesmo processo.
Exemplo:
Agent:
analisa 1.000 Work Permits
Human:
revisa os 12 casos críticos
20. Resource Requirements
Cada Task poderá declarar requisitos:
interface ResourceRequirement {
requirementId: string;
skills?: SkillRequirement[];
qualifications?: QualificationRequirement[];
capabilities?: string[];
resourceTypes?: ResourceType[];
minimumCapacity?: number;
location?: LocationConstraint;
availability?: TemporalConstraint;
authorization?: string;
maxCost?: number;
}
21. Mandatory vs Preferred
Requisitos poderão ser:
MANDATORY
PREFERRED
OPTIONAL
Exemplo:
NR-10 = MANDATORY
5 years experience = PREFERRED
same location = OPTIONAL
22. Candidate Discovery
O sistema deverá primeiro encontrar candidatos compatíveis.
Task
↓
Requirements
↓
Resource Registry
↓
Candidate Set
Não utilizar LLM para pesquisar todos os recursos.
23. Candidate Filtering
Filtros determinísticos:
tenant
status
authorization
qualification
skill
availability
capacity
location
24. Candidate Ranking
Depois do filtro:
Candidate A
Candidate B
Candidate C
poderão ser classificados.
25. Resource Score
Exemplo conceitual:
score =
skillMatch
+ qualificationMatch
+ availability
+ capacity
+ workload
+ proximity
+ SLAFit
+ cost
Os pesos deverão ser configuráveis por domínio/policy.
26. Hard Constraints
Nunca poderão ser compensadas por score.
Exemplo:
NR-10 expired
não poderá ser compensado por:
"excellent experience"
27. Soft Constraints
Podem influenciar ranking:
proximity
preferred team
historical workload
preferred channel
estimated cost
28. Policy Boundary
O Resource Fabric poderá dizer:
“João é o melhor candidato.”
Mas somente Policy poderá dizer:
“João está autorizado.”
29. Availability
Disponibilidade deverá ser temporal.
interface AvailabilityWindow {
resourceId: string;
startAt: string;
endAt: string;
status: "AVAILABLE" | "UNAVAILABLE" | "RESERVED";
}
30. Shift
Para trabalhadores:
Shift
├── timezone
├── start
├── end
├── workingDays
└── exceptions
deverá utilizar o calendário do PRD-037.
31. Capacity
Disponibilidade não significa capacidade.
Exemplo:
João:
AVAILABLE
Current workload:
95%
Ele pode estar disponível, mas sem capacidade suficiente.
32. Capacity Model
interface CapacityModel {
unit: string;
total: number;
allocated: number;
reserved: number;
available: number;
}
33. Human Capacity
Para humanos:
capacityUnit = HOURS
Exemplo:
8h/day
allocated = 6h
available = 2h
34. Agent Capacity
Para Agents:
requests/minute
concurrentTasks
tokenBudget
computeBudget
35. Machine Capacity
Para máquinas:
cycles
hours
throughput
maintenance windows
36. Resource Reservation
Antes de uma operação importante, o sistema poderá reservar capacidade.
DISCOVER
↓
RESERVE
↓
ASSIGN
↓
EXECUTE
↓
RELEASE
37. Reservation Model
interface ResourceReservation {
reservationId: string;
resourceId: string;
tenantId: string;
operationId: string;
startAt: string;
endAt: string;
capacity: number;
status: ReservationStatus;
}
38. Reservation Lifecycle
REQUESTED
↓
RESERVED
↓
ACTIVE
↓
CONSUMED
↓
RELEASED
Alternativas:
EXPIRED
CANCELLED
FAILED
39. Double Booking Protection
Duas operações não deverão reservar a mesma capacidade.
Deverá existir:
optimistic concurrency
+
reservation version
40. Resource Lock
Para recursos exclusivos:
Machine X
↓
LOCKED by operation-123
Outro processo deverá receber:
RESOURCE_CONFLICT
41. Partial Capacity
Para recursos divisíveis:
capacity = 100
allocated = 40
poderão existir múltiplas alocações.
42. Allocation
Allocation representa a distribuição efetiva de capacidade.
interface ResourceAllocation {
allocationId: string;
resourceId: string;
operationId: string;
amount: number;
unit: string;
startAt: string;
endAt?: string;
status: string;
}
43. Assignment
Assignment liga a tarefa ao recurso.
Task
↓
Assignment
↓
Resource
44. Assignment Lifecycle
PROPOSED
↓
PENDING_ACCEPTANCE
↓
ACCEPTED
↓
ACTIVE
↓
COMPLETED
Alternativas:
REJECTED
EXPIRED
REASSIGNED
CANCELLED
45. Human Acceptance
Determinadas tarefas poderão exigir que o humano aceite.
Exemplo:
“Você foi designado para revisar 20 Work Permits.”
O usuário poderá:
ACEITAR
RECUSAR
DELEGAR
46. Automatic Assignment
Para tarefas de baixo risco:
Task
↓
Resource Matching
↓
Policy
↓
Auto Assignment
47. Assignment Policy
interface AssignmentPolicy {
policyId: string;
allowedResourceTypes: ResourceType[];
autoAssign: boolean;
requireAcceptance: boolean;
maxWorkload: number;
escalationPolicy?: string;
}
48. Reassignment
Se:
resource unavailable
o sistema poderá procurar:
alternative candidate
sem alterar a autorização da tarefa.
49. Dynamic Reassignment
Durante execução:
Resource A
↓
UNAVAILABLE
↓
Resource B
Essa alteração deverá passar pelo PRD-034 Adaptive Execution.
50. Material Reassignment
Se a troca alterar:
- autoridade;
- responsabilidade;
- risco;
- qualificação;
- escopo;
deverá ocorrer nova avaliação de Policy.
51. Delegation
Uma pessoa poderá delegar:
Task A
↓
João
↓
Maria
mas apenas se PRD-027 permitir.
52. Delegation ≠ Reassignment
Delegação significa:
autoridade operacional temporariamente delegada.
Reassignment significa:
tarefa transferida para outro recurso.
São conceitos distintos.
53. Workload
O sistema deverá acompanhar:
activeTasks
pendingTasks
estimatedHours
overdueTasks
capacityUtilization
54. Workload Score
utilization =
allocatedCapacity / totalCapacity
Exemplo:
80%
55. Overload
Se:
utilization > threshold
o sistema poderá:
route elsewhere
queue
escalate
request additional resources
56. Fairness
Quando vários recursos são equivalentes, o sistema poderá distribuir tarefas de forma equilibrada.
Exemplo:
João 20 tarefas
Maria 5 tarefas
Uma nova tarefa poderá preferir Maria.
57. Fairness ≠ Absolute Equality
A distribuição deverá respeitar:
- capacidade;
- competências;
- jornada;
- SLA;
- prioridade;
- responsabilidade.
58. Skill Matching
Exemplo:
Task:
Review electrical Work Permit
Required:
skill = electrical-safety
qualification = NR-10
Candidate:
João
✓ skill
✓ qualification
✓ available
✓ authorized
→ candidato válido.
59. Qualification Expiration
Se:
NR-10 expires tomorrow
e a tarefa dura:
3 days
a alocação deverá ser rejeitada ou marcada como risco, conforme Policy.
60. Temporal Resource Fit
A seleção deverá considerar o período inteiro da tarefa.
Task:
10/09 08:00 → 10/09 17:00
Resource:
available 08:00 → 12:00
não é full match.
61. Location
Quando relevante:
resource.location
task.location
poderão ser comparados.
62. Remote vs Physical
Uma tarefa poderá exigir:
REMOTE
ONSITE
HYBRID
63. Geographic Constraints
Para tarefas físicas:
distance
travelTime
location
facility
region
poderão ser considerados.
64. Resource Dependencies
Um recurso poderá depender de outro:
Inspector
↓
requires
↓
Equipment
A tarefa só poderá começar quando ambos estiverem disponíveis.
65. Composite Resource
Uma operação poderá exigir:
1 inspector
+
1 equipment
+
1 facility
66. Resource Bundle
interface ResourceBundle {
bundleId: string;
requirements: ResourceRequirement[];
resources: string[];
validFrom: string;
validUntil?: string;
}
67. Planning Integration
PRD-032 poderá solicitar:
Qual combinação de recursos produz o menor custo respeitando SLA?
O Resource Fabric fornecerá:
candidate resources
capacity
availability
cost
constraints
68. Runtime Integration
PRD-034 poderá informar:
resource degraded
e solicitar:
alternative resource
69. Attention Integration
PRD-038 poderá produzir:
Attention
↓
required skill
↓
Resource Fabric
↓
assignment
70. Goal Integration
Um Goal poderá exigir:
maintain compliance
e o Resource Fabric determinar:
who can perform remediation
71. Workflow Integration
Workflow:
WAITING_REVIEW
poderá procurar automaticamente:
qualified reviewer
72. Event Integration
Eventos como:
TrainingExpired
EmployeeUnavailable
ResourceOffline
QualificationExpired
poderão disparar reavaliação de assignments.
73. State Integration
Qualquer mudança importante deverá refletir no State Fabric.
Exemplo:
Employee
qualification expired
↓
State Fabric
↓
assignment invalidated
74. Knowledge Integration
Knowledge Fabric poderá fornecer:
organizational relationships
skills
qualifications
dependencies
mas o estado operacional deverá continuar vindo das fontes autoritativas.
75. External Resource
Recursos externos poderão ser consultados através do PRD-025.
Exemplo:
External Inspector
↓
External Provider API
76. External Availability
O sistema poderá consultar:
availability
qualification
booking
status
sem expor credenciais ao Agent.
77. Cost
Recursos poderão ter custo:
interface ResourceCost {
resourceId: string;
unit: string;
amount: number;
currency: string;
effectiveFrom: string;
effectiveUntil?: string;
}
78. Cost-Aware Assignment
Quando dois recursos são equivalentes:
Resource A = $100
Resource B = $70
poderá ser escolhido B.
Mas custo nunca poderá violar:
qualification
authorization
safety
SLA
policy
79. Priority-Aware Allocation
Uma tarefa crítica poderá receber prioridade sobre tarefas normais.
CRITICAL
↓
HIGH
↓
NORMAL
↓
LOW
80. Preemption
Em determinadas operações poderá existir preempção:
Task normal
↓
pause
↓
Task critical
Isso deverá ser explicitamente permitido pela Policy.
81. No Arbitrary Preemption
O Agent não poderá interromper trabalho humano ou físico simplesmente para “otimizar”.
82. Queueing
Quando não houver capacidade:
Task
↓
QUEUE
↓
WAIT
↓
RESOURCE AVAILABLE
↓
ASSIGN
83. Queue Priority
A fila deverá considerar:
priority
deadline
SLA
risk
goal importance
84. SLA Risk
Uma tarefa próxima de violar SLA poderá receber prioridade maior.
Integração com PRD-037:
SLA
↓
remaining time
↓
resource allocation
85. Capacity Forecasting
O sistema poderá prever:
tomorrow:
capacity shortage
next week:
40% overload
Isso alimentará o PRD-021 Proactive Intelligence.
86. Predictive Capacity
Modelos estatísticos poderão auxiliar:
expected workload
expected availability
expected demand
O LLM não deverá ser a fonte primária dessa previsão.
87. Workforce Risk
Exemplo:
Only one qualified person
for critical capability
→ risco organizacional.
88. Single Point of Failure
O sistema deverá detectar:
Capability:
workPermit.approve
Qualified resources:
1
e gerar:
WORKFORCE_SINGLE_POINT_OF_FAILURE
89. Qualification Gap
Exemplo:
Required:
10 qualified inspectors
Available:
6
→:
CAPACITY_GAP
90. Proactive Action
O sistema poderá gerar:
Attention:
qualification capacity insufficient
e:
Goal:
increase qualified workforce
91. Human Development
O Resource Fabric poderá identificar:
skill gap
qualification gap
training gap
mas não poderá automaticamente alterar dados de RH sem Capability e Policy.
92. Resource Health
Recursos sistêmicos poderão ter:
HEALTHY
DEGRADED
CRITICAL
UNKNOWN
93. Agent Health
Exemplo:
training-agent
↓
HEALTHY
risk-agent
↓
DEGRADED
O Planner poderá procurar alternativa.
94. Service Health
APIs externas também serão tratadas como recursos:
LMS API
↓
DEGRADED
95. Resource Discovery API
A camada deverá oferecer operações como:
resource.search
resource.get
resource.checkAvailability
resource.checkQualification
resource.reserve
resource.release
resource.assign
resource.reassign
Todas registradas no Capability Registry.
96. Resource Registry ≠ Capability Registry
Capability Registry responde:
“O que o Agent pode fazer?”
Resource Registry responde:
“Quem ou o que pode realizar isso?”
97. Assignment Engine
Componente principal:
Assignment Engine
├── Requirement Resolver
├── Candidate Finder
├── Qualification Validator
├── Availability Checker
├── Capacity Checker
├── Policy Evaluator
├── Candidate Ranker
├── Reservation Manager
└── Assignment Manager
98. Deterministic First
Fluxo:
requirements
↓
indexes
↓
filters
↓
policy
↓
ranking
LLM somente quando houver necessidade semântica.
99. LLM-Assisted Matching
Pode ser usado para interpretar:
“Preciso de alguém que tenha experiência com espaços confinados e conheça esse tipo de operação.”
O LLM transforma isso em requisitos estruturados:
{
"skills": [
"confined-space",
"industrial-operation"
]
}
Depois disso:
Registry
+
Policy
fazem a seleção real.
100. No LLM Authority
O LLM jamais poderá dizer:
"João está autorizado."
sem validação do Policy Engine.
101. Assignment Decision
interface AssignmentDecision {
decisionId: string;
taskId: string;
selectedResourceId?: string;
alternatives: string[];
requirementsSatisfied: boolean;
policyResult: string;
confidence?: number;
reasonCodes: string[];
}
102. Explainability
O sistema deverá conseguir explicar:
João foi selecionado porque possui a qualificação exigida, está disponível no período, possui capacidade e está autorizado pela política aplicável.
Não deverá revelar chain-of-thought.
103. Assignment Conflict
Se dois processos tentarem atribuir:
sameResource
sameExclusiveCapacity
o segundo deverá receber:
RESOURCE_ALLOCATION_CONFLICT
104. Recovery
Após conflito:
retry
↓
rediscover candidates
↓
reallocate
ou:
WAIT
ou:
HUMAN_REVIEW
105. Resource Versioning
Todo recurso relevante deverá possuir:
resourceVersion
Exemplo:
qualification changed
version 12 → 13
106. Stale Assignment
Se o assignment foi criado com:
resourceVersion = 12
e agora:
resourceVersion = 13
o sistema deverá verificar se a mudança impacta a operação.
107. Impact Levels
NO_IMPACT
LOW
MATERIAL
CRITICAL
108. Security
Todo acesso deverá ser tenant-aware.
tenant A
≠
tenant B
109. Resource Privacy
Nem todos os atributos de um funcionário poderão ser expostos ao Agent.
Por exemplo:
salary
personalAddress
privateHRData
não são necessários para assignment normal.
110. Minimum Necessary Data
O Assignment Engine deverá receber apenas:
skills
qualifications
availability
capacity
authorization
organizational context
quando isso for suficiente.
111. Audit
Registrar:
resource discovered
candidate rejected
qualification checked
policy evaluated
resource selected
reservation created
assignment created
assignment accepted
assignment rejected
resource reassigned
reservation released
112. Assignment Reason Codes
Exemplos:
QUALIFICATION_MATCH
SKILL_MATCH
CAPACITY_AVAILABLE
SLA_OPTIMIZATION
LOWEST_COST
NEAREST_RESOURCE
WORKLOAD_BALANCING
POLICY_REQUIRED
113. Rejection Reasons
QUALIFICATION_MISSING
QUALIFICATION_EXPIRED
SKILL_MISSING
UNAVAILABLE
CAPACITY_EXCEEDED
UNAUTHORIZED
TENANT_MISMATCH
LOCATION_MISMATCH
SHIFT_CONFLICT
RESOURCE_SUSPENDED
POLICY_DENIED
114. Observability
Métricas:
candidate_search_latency
assignment_latency
assignment_success_rate
assignment_conflict_rate
resource_utilization
capacity_gap
qualification_gap
reassignment_rate
queue_wait_time
SLA_assignment_failure
115. Performance
O caminho normal deverá evitar LLM.
Metas iniciais:
Resource lookup:
< 20ms ideal
Candidate filtering:
< 50ms ideal
Assignment decision:
< 100ms ideal
Simple assignment:
< 250ms target
Operações externas deverão ser assíncronas quando necessário.
116. Caching
Poderão ser cacheados:
skills
qualification metadata
organizational structure
resource capabilities
Nunca cachear autorização de forma que permita ultrapassar mudanças de Policy.
117. Invalidation
Mudanças em:
qualification
availability
status
authorization
tenant
deverão invalidar caches relevantes.
118. Multi-Tenant
Todos os índices deverão incluir:
tenantId
quando o dado for tenant-scoped.
Não utilizar:
global resource cache
sem isolamento explícito.
119. Resource Federation
Para organizações grandes:
Global Registry
+
Tenant Registry
+
External Registry
poderão ser combinados através de referências.
120. First Vertical Slice
O primeiro caso será:
Distribuição automática de revisão de Work Permits considerando competência, qualificação, disponibilidade e carga de trabalho.
121. Scenario
Existem:
100 Work Permits
que precisam de revisão.
Requisitos:
skill = work-permit-review
qualification = required certification
122. Candidate Discovery
Sistema encontra:
João
Maria
Carlos
Ana
123. Qualification
João ✓
Maria ✓
Carlos ✗ expired
Ana ✓
Carlos é eliminado.
124. Availability
João ✓
Maria ✓
Ana ✗
Ana é eliminada.
125. Capacity
João:
90%
Maria:
30%
Maria será preferida para tarefas equivalentes.
126. Assignment
100 Work Permits
↓
Assignment Engine
↓
Maria 40
João 60
respeitando os limites configurados.
127. Attention
Se a capacidade disponível for insuficiente:
100 permits
required capacity = 100h
available = 65h
o sistema cria:
Attention:
Work Permit Review Capacity Gap
128. Proactive Intelligence
PRD-021 poderá detectar:
capacity shortage expected next week
e criar uma recomendação.
129. Goal
PRD-036 poderá acompanhar:
Goal:
Review all pending Work Permits within SLA
130. Temporal Intelligence
PRD-037 fornece:
deadline
SLA
working hours
shift
holiday
131. Adaptive Runtime
PRD-034 poderá alterar:
batch size
parallelism
resource assignment
quando permitido.
132. State Fabric
PRD-035 garante:
assignment
resource
task
workflow
business state
permaneçam sincronizados.
133. Exception Management
Se um recurso falhar:
ResourceUnavailable
↓
PRD-024
↓
Rediscovery
↓
Reassignment
134. Event Fabric
Eventos:
ResourceAssigned
ResourceUnavailable
AssignmentAccepted
AssignmentRejected
ResourceCapacityChanged
QualificationExpired
AssignmentReassigned
135. Human Collaboration
Quando nenhum recurso adequado existir:
NO_QUALIFIED_RESOURCE
o sistema não deverá improvisar.
Deverá:
Attention
↓
Human Review
↓
Decision
136. Safety Principle
Em SST:
Ausência de recurso qualificado não pode ser tratada como autorização para utilizar um recurso não qualificado.
Esse princípio deverá ser uma regra global de segurança.
137. Acceptance Criteria
- Resource Registry implementado.
- Resource types definidos.
- Resource status implementado.
- Skill model implementado.
- Qualification model implementado.
- Validade temporal implementada.
- Resource requirements implementados.
- Candidate discovery implementado.
- Qualification filtering implementado.
- Availability filtering implementado.
- Capacity filtering implementado.
- Candidate ranking implementado.
- Hard constraints implementadas.
- Soft constraints implementadas.
- Assignment Engine implementado.
- Reservation implementada.
- Allocation implementada.
- Double-booking protection implementada.
- Assignment lifecycle implementado.
- Human acceptance implementado.
- Automatic assignment implementado.
- Reassignment implementado.
- Delegation integrada ao PRD-027.
- Workforce workload implementado.
- Fairness implementado.
- Skill-based routing implementado.
- Temporal fit implementado.
- Location constraints implementadas.
- Composite resources implementados.
- Resource dependencies implementadas.
- Cost-aware allocation implementada.
- Queueing implementado.
- SLA-aware assignment implementado.
- Capacity forecasting integrado.
- Resource health implementado.
- External resources integrados pelo PRD-025.
- State synchronization integrada.
- Event Fabric integrada.
- Exception Management integrada.
- Audit implementado.
- Observability implementada.
- Tenant isolation validada.
- Privacy/data minimization implementada.
- Work Permit vertical slice funcionando.
Evidência de implementação — 2026-09-04
-
O núcleo determinístico
workforce-coordinationsepara hard constraints de score configurável, exige decisão PolicyALLOWpor capability e valida tenant, status, qualificação durante a janela inteira, disponibilidade, shift IANA, exceções, capacidade, workload, localização, modo, SLA, custo, health e trust. -
A migration D1
0113_workforce_coordination.sqlversiona policies, decisões de autorização, shifts, dependências, bundles, decisões explicáveis, reservations, allocations, delegações, queues, forecasts, health e reconciliações; históricos críticos são append-only e o banco rejeita conflito de capacidade/exclusividade. -
O fluxo persistente implementa
DISCOVER → REQUESTED → RESERVED → ASSIGN → ACCEPT → ACTIVE → COMPLETE → CONSUMED → RELEASED, mantém delegation PRD-027 distinta de reassignment e encaminha mudança material de State para reevaluation e Adaptive Runtime. -
Replay limpo aplicou 113/113 migrations; 28 testes focados, 297 testes predeploy e 206 testes de exceções passaram, além dos typechecks.
-
D1 remoto aplicou 89 comandos; Worker
bf937931-0292-4b6f-b928-72b889790103e canário tenant4089e296-728c-422c-bef6-a3a4e1883ef6provaram 2 humanos + Agent + Machine, ranking custo/fairness, shift recorrente, bundle dependente, conflito de double booking com Exception, lifecycles completos, delegação humana, State→Adaptive, health recovery, queue/SLA, forecast6/10com gap 4 e SPOF, preemption protegida, timeline, métricas, isolamento e acesso anônimo negado. -
Tamper remoto de policy foi rejeitado com
WORKFORCE_POLICY_IMMUTABLE; todas as respostas de coordenação mantiveramauthorizesExecution=falsee o cleanup PostgreSQL terminou com zero linhas. -
Em 2026-09-05, saúde
UNKNOWNpassou a ser fail-closed: tanto o evento de saúde quanto a reconciliação com State Fabric exigem reatribuição e reavaliação de política. Assim, ausência ou divergência de sinal não mantém recurso ativo como se estivesse disponível. Workerdddeb95f-7495-42b2-905a-c47a94b15791publicado com health público saudável. -
Em 2026-09-06, a regressão atual de recursos operacionais, Workforce Coordination e Workforce Registry passou com 17 testes. O typecheck do Agent passou novamente, e o health público do Worker confirmou runtime e bindings. A classificação
PROVEN_CLOUDFLAREpermanece sustentada pelo canário remoto registrado.
138. Resultado Arquitetural
Com o PRD-039, o Agentic Work passa a possuir uma visão completa de trabalho + recursos:
GOAL
│
▼
TASK
│
▼
RESOURCE REQUIREMENTS
│
▼
RESOURCE REGISTRY
│
┌───────────────┼────────────────┐
▼ ▼ ▼
SKILLS QUALIFICATIONS CAPACITY
│ │ │
└───────────────┼────────────────┘
▼
AVAILABILITY
│
▼
POLICY
│
▼
ASSIGNMENT ENGINE
│
▼
RESERVATION / ALLOCATION
│
▼
RESOURCE
│
▼
EXECUTION
│
▼
VERIFICATION
O sistema agora consegue raciocinar sobre:
objetivo → tarefa → requisitos → recursos → competência → disponibilidade → capacidade → autorização → atribuição → execução → resultado.
Isso transforma o Agentic Work em uma arquitetura capaz de coordenar humanos, agentes e sistemas como uma força de trabalho digital integrada, sem permitir que otimização de recursos ultrapasse limites de segurança ou autorização.
PRD-040 — Agentic Collaboration, Handoff & Approval Workspace
A próxima camada será construída sobre PRD-039.
Até aqui sabemos quem pode executar o trabalho. O próximo problema é coordenar o trabalho entre pessoas, agentes e equipes.
O PRD-040 deverá formalizar:
TASK
↓
ASSIGNMENT
↓
COLLABORATION
↓
HANDOFF
↓
REVIEW
↓
APPROVAL
↓
EXECUTION
↓
VERIFICATION
Ele deverá tratar, entre outros:
- Collaboration Workspace;
- Human ↔ Human collaboration;
- Human ↔ Agent collaboration;
- Agent ↔ Agent handoff;
- Task ownership;
- Co-ownership;
- Handoff contracts;
- Evidence transfer;
- Context transfer;
- Approval workspace;
- Review queues;
- Comments;
- Annotations;
- Mentions;
- Decision requests;
- Request for information;
- Acceptance/rejection;
- Multi-step approval;
- Quorum;
- Two-person rule;
- Segregation of duties;
- Approval delegation;
- Approval expiration;
- Approval escalation;
- Collaborative decision making;
- Shared operational context;
- Conflict resolution;
- Concurrent editing;
- Optimistic locking;
- Presence;
- Activity timeline;
- Human takeover;
- Agent pause;
- Agent resume;
- Human override;
- Agent recommendation vs human decision;
- Evidence provenance;
- Audit;
- Security;
- Tenant isolation;
- Notifications;
- Attention Center;
- Identity and Delegation;
- Workflow;
- Decision Intelligence;
- Resource Coordination;
- State Synchronization;
- Event Fabric;
- Temporal Intelligence.
O objetivo será fechar uma lacuna importante:
o Agentic Work não deve apenas executar tarefas; ele deve saber transferir responsabilidade, solicitar participação humana, conduzir aprovações e trabalhar colaborativamente com pessoas e outros agentes.