@uipath/skills 1.197.0 → 1.197.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/uipath-ixp/SKILL.md +2 -2
- package/skills/uipath-ixp/references/label-documents-guide.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +1 -1
- package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
- package/skills/uipath-platform/SKILL.md +10 -1
- package/skills/uipath-review/SKILL.md +21 -10
- package/skills/uipath-review/references/api-workflows/api-workflow-review-checklist.md +72 -0
- package/skills/uipath-review/references/bpmn/bpmn-review-checklist.md +92 -0
- package/skills/uipath-review/references/coded-apps/coded-app-review-checklist.md +16 -15
- package/skills/uipath-review/references/flows/flow-common-issues.md +1 -25
- package/skills/uipath-review/references/flows/flow-review-checklist.md +12 -67
- package/skills/uipath-review/references/rpa/long-running-workflow-issues.md +2 -2
- package/skills/uipath-review/references/rpa/modern-studio-issues.md +2 -2
- package/skills/uipath-review/references/rpa/rpa-common-issues.md +15 -59
- package/skills/uipath-review/references/rpa/rpa-review-checklist.md +17 -16
- package/skills/uipath-review/references/solution-review-guide.md +1 -1
- package/skills/uipath-rpa/SKILL.md +7 -8
- package/skills/uipath-rpa/references/cli-reference.md +7 -6
- package/skills/uipath-rpa/references/debugging.md +117 -56
- package/skills/uipath-rpa/references/environment-setup.md +2 -2
- package/skills/uipath-rpa/references/ui-automation-guide.md +12 -2
- package/skills/uipath-rpa/references/uia-prerequisites.md +7 -7
- package/skills/uipath-rpa/references/validation-guide.md +9 -12
- package/skills/uipath-solution/references/scenarios/manual-edits.md +2 -2
- package/skills/uipath-troubleshoot/SKILL.md +68 -137
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +3 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +1 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-not-found.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-coordinate-off-screen.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-disabled.md +3 -3
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-fix.md +3 -3
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +2 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/overview.md +26 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/app-request-trigger-connection-lost.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/handle-app-request-null-reference.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/initialize-hub-connection-aggregate-failure.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/summary.md +9 -0
- package/skills/uipath-troubleshoot/references/escalation.md +98 -0
- package/skills/uipath-troubleshoot/references/investigation_guide.md +41 -1
- package/skills/uipath-troubleshoot/references/knowledge-base-guide.md +22 -24
- package/skills/uipath-troubleshoot/references/presenting.md +143 -0
- package/skills/uipath-troubleshoot/references/products/agents/playbooks/context-grounding-index-not-found.md +2 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/cns-error-codes-reference.md +91 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/dap-error-codes-reference.md +109 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +9 -3
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/activity-configuration-corrupt.md +52 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +2 -2
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-not-resolved.md +47 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +2 -2
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-authenticated.md +46 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-found.md +53 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connector-unavailable.md +48 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-dependency-unavailable.md +59 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-events-callback-failed.md +55 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-operation-conflict.md +41 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-permission-denied.md +54 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-solutions-install-failed.md +66 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-trigger-operation-failed.md +48 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/http-client-exception.md +44 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/missing-required-input.md +38 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/request-failed.md +49 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-mapping-mismatch.md +43 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/token-refresh-failed.md +42 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/trigger-execution-failed.md +47 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +43 -0
- package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +4 -4
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/personal-automation-quota.md +1 -1
- package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +13 -27
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-stale-dispatch.md +2 -2
- package/skills/uipath-troubleshoot/references/runtime-exceptions/playbooks/argument-null-exception.md +1 -1
- package/skills/uipath-troubleshoot/references/summary.md +33 -12
- package/skills/uipath-troubleshoot/references/templates/playbook-template.md +1 -1
- package/version-manifest.json +1 -1
- package/skills/uipath-troubleshoot/agents/depth-verifier.md +0 -164
- package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +0 -42
- package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +0 -103
- package/skills/uipath-troubleshoot/agents/presenter.md +0 -160
- package/skills/uipath-troubleshoot/agents/scope-checker.md +0 -42
- package/skills/uipath-troubleshoot/agents/shared.md +0 -97
- package/skills/uipath-troubleshoot/agents/triage.md +0 -148
- package/skills/uipath-troubleshoot/schemas/evidence.schema.md +0 -118
- package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +0 -71
- package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +0 -27
- package/skills/uipath-troubleshoot/schemas/state.schema.md +0 -145
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# Evidence Schema
|
|
2
|
-
|
|
3
|
-
## Directories
|
|
4
|
-
|
|
5
|
-
| Directory | Purpose | Contents |
|
|
6
|
-
|-----------|---------|----------|
|
|
7
|
-
| `.local/investigations/evidence/` | Interpreted evidence summaries | JSON files with analysis and interpretation |
|
|
8
|
-
| `.local/investigations/raw/` | Raw data dumps | Unprocessed CLI responses, file contents |
|
|
9
|
-
|
|
10
|
-
Created by: Triage sub-agent, Hypothesis Tester sub-agent
|
|
11
|
-
Read by: All sub-agents, orchestrator
|
|
12
|
-
|
|
13
|
-
## File naming
|
|
14
|
-
|
|
15
|
-
### Evidence files (`.local/investigations/evidence/`)
|
|
16
|
-
|
|
17
|
-
- `triage-initial.json` — initial data from triage (job info, error, etc.)
|
|
18
|
-
- `{hypothesis-id}-{source}.json` — evidence for a specific hypothesis
|
|
19
|
-
- e.g., `H1-cli-data.json`, `H1-docsai-results.json`, `H2a-source-analysis.json`
|
|
20
|
-
|
|
21
|
-
### Raw data files (`.local/investigations/raw/`)
|
|
22
|
-
|
|
23
|
-
- `triage-{command-name}.json` — raw triage CLI response
|
|
24
|
-
- `{hypothesis-id}-{command-name}.json` — raw CLI response for a hypothesis
|
|
25
|
-
- e.g., `H1-Jobs_GetByKeyByIdentifier.json`, `H1-GetJobTraces.json`
|
|
26
|
-
|
|
27
|
-
## Structure
|
|
28
|
-
|
|
29
|
-
Each evidence file:
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"id": "evidence-unique-id",
|
|
34
|
-
"hypothesis_id": "H1",
|
|
35
|
-
"source": "uip_cli | docsai | playbook | user | source_code",
|
|
36
|
-
"collected_by": "triage | tester",
|
|
37
|
-
"timestamp": "ISO8601",
|
|
38
|
-
"query": "What was queried or asked (uip command, docsai query, file path read)",
|
|
39
|
-
"raw_data_ref": "raw/H1-Jobs_GetByKeyByIdentifier.json",
|
|
40
|
-
"raw_data_summary": "Condensed summary of what was found (keep under 100 lines)",
|
|
41
|
-
"interpretation": "What this evidence means for the hypothesis",
|
|
42
|
-
"elimination_checks": [
|
|
43
|
-
{
|
|
44
|
-
"criterion": "what elimination criterion from evidence_needed.to_eliminate was checked",
|
|
45
|
-
"result": "what the query/check actually returned",
|
|
46
|
-
"outcome": "passed (hypothesis survives) | failed (hypothesis eliminated) | not_testable (data unavailable)"
|
|
47
|
-
}
|
|
48
|
-
],
|
|
49
|
-
"execution_path_traced": [
|
|
50
|
-
{
|
|
51
|
-
"step": "description of this step in the expected execution path",
|
|
52
|
-
"expected": "what the hypothesis predicts should have happened",
|
|
53
|
-
"actual": "what the data actually shows",
|
|
54
|
-
"verified_by": "which query or data source confirmed this"
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
"needs_user_input": false,
|
|
58
|
-
"user_question": null
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Signals (triage-initial.json only)
|
|
63
|
-
|
|
64
|
-
`evidence/triage-initial.json` carries a top-level `signals` array. Signals are the structured inventory of discrete facts triage extracted from gathered data. They are the unified input to playbook matching, hypothesis generation, and hypothesis testing.
|
|
65
|
-
|
|
66
|
-
```json
|
|
67
|
-
{
|
|
68
|
-
"signals": [
|
|
69
|
-
{
|
|
70
|
-
"name": "exception_class",
|
|
71
|
-
"value": "System.NullReferenceException",
|
|
72
|
-
"category": "exception",
|
|
73
|
-
"source": "raw/triage-job-logs.json"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"name": "package_version",
|
|
77
|
-
"value": "UiPath.System.Activities 22.10.5",
|
|
78
|
-
"category": "package_version",
|
|
79
|
-
"source": "raw/triage-job-traces.json"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"name": "asset_exists",
|
|
83
|
-
"value": true,
|
|
84
|
-
"category": "entity_state",
|
|
85
|
-
"source": "raw/triage-resource-assets-list.json"
|
|
86
|
-
}
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Fields
|
|
92
|
-
|
|
93
|
-
- `name` — short identifier for the signal (e.g., `exception_class`, `error_code`, `asset_exists`, `package_version`). Snake_case, descriptive.
|
|
94
|
-
- `value` — observed value. String, number, or boolean. For boolean signals like `asset_exists`, `true` means "asset is present"; `false` means "asset is absent".
|
|
95
|
-
- `category` — one of: `exception | error_code | http_status | activity_label | entity_state | package_version | runtime_type | error_fragment | cross_product_ref | folder_context`. Use the closest match; do not invent new categories without need.
|
|
96
|
-
- `source` — relative path to the raw file the signal was extracted from. The signal MUST be traceable back to actual observed data.
|
|
97
|
-
|
|
98
|
-
### Producers and consumers
|
|
99
|
-
|
|
100
|
-
- **Triage** produces signals while executing plan data-fetch steps. Each fetched response is scanned for signal-worthy facts and entries are appended to `signals`. Triage step E (match playbooks) iterates this array, not the raw files.
|
|
101
|
-
- **Hypothesis generator** reads `signals` to inform what hypotheses to draft. Each generated hypothesis records which signals supported it (see `schemas/hypotheses.schema.md` → `signals_supporting`).
|
|
102
|
-
- **Hypothesis tester** reads `signals` BEFORE its test plan. For each `to_confirm` / `to_eliminate` item, the tester checks whether a signal already resolves it. If yes, the corresponding plan step is `status: skipped` with the signal name in `purpose` — no re-fetch.
|
|
103
|
-
|
|
104
|
-
### Rules
|
|
105
|
-
|
|
106
|
-
- One signal per discrete fact. Do NOT combine multiple facts into one signal (`exception_class_and_message` is two signals, not one).
|
|
107
|
-
- Never overwrite or reconcile a signal in place — one `name` = one observed fact. If two raw sources disagree, that is NOT a forbidden state: record each observation as its own signal with a distinct `name` and let the matcher / downstream agents resolve the conflict. The only thing disallowed is mutating an existing signal (see immutability below).
|
|
108
|
-
- Signals are immutable once written. New evidence appends new signals; existing signals don't get rewritten.
|
|
109
|
-
|
|
110
|
-
## Rules
|
|
111
|
-
|
|
112
|
-
- **Raw data MUST be written to `.local/investigations/raw/` immediately** — write the full response to a raw file BEFORE summarizing
|
|
113
|
-
- **Never keep raw data in context** — write it to a raw file, then read it back only if needed for analysis. Do not hold CLI responses or log dumps in the agent's working memory.
|
|
114
|
-
- Evidence files contain summaries and interpretation only; they reference raw files via `raw_data_ref`
|
|
115
|
-
- If a sub-agent needs user input, set `needs_user_input: true` and `user_question` to the question
|
|
116
|
-
- The orchestrator reads evidence files (not raw files) to make decisions
|
|
117
|
-
- Evidence files are immutable once written — new evidence gets a new file
|
|
118
|
-
- Raw files are immutable once written — they are the source of truth for what was actually returned
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# Hypotheses Schema
|
|
2
|
-
|
|
3
|
-
File: `.local/investigations/hypotheses.json`
|
|
4
|
-
|
|
5
|
-
Created by: Hypothesis Generator sub-agent
|
|
6
|
-
Read by: Hypothesis Tester sub-agent, orchestrator
|
|
7
|
-
Updated by: Hypothesis Tester (status, evidence, is_root_cause, open_gaps), Orchestrator (may override root-cause flag; writes resolution)
|
|
8
|
-
|
|
9
|
-
## Structure
|
|
10
|
-
|
|
11
|
-
```json
|
|
12
|
-
{
|
|
13
|
-
"hypotheses": [
|
|
14
|
-
{
|
|
15
|
-
"id": "H1",
|
|
16
|
-
"description": "Human-readable description of what could be wrong",
|
|
17
|
-
"scope_level": "platform | product | feature | process | activity",
|
|
18
|
-
"confidence": "high | medium | low",
|
|
19
|
-
"status": "pending | confirmed | eliminated | inconclusive",
|
|
20
|
-
"is_root_cause": null,
|
|
21
|
-
"parent": null,
|
|
22
|
-
"reasoning": "Why this hypothesis was generated — what data or pattern led to it",
|
|
23
|
-
"source": "playbook | docsai | evidence",
|
|
24
|
-
"evidence_needed": {
|
|
25
|
-
"to_confirm": ["what evidence would prove this"],
|
|
26
|
-
"to_eliminate": ["what evidence would disprove this"]
|
|
27
|
-
},
|
|
28
|
-
"signals_supporting": ["names of signals from triage-initial.json that support this hypothesis"],
|
|
29
|
-
"signals_contradicting": ["names of signals that would contradict — populated by tester if any fire"],
|
|
30
|
-
"test_plan": [
|
|
31
|
-
{
|
|
32
|
-
"n": 1,
|
|
33
|
-
"action": "uip <subcommand> --output json | tee raw/H1-<file>.json",
|
|
34
|
-
"purpose": "fetches a to_confirm or to_eliminate item",
|
|
35
|
-
"feeds": "evidence/H1-<source>.json",
|
|
36
|
-
"revise_if": "observed-field condition (empty if unconditional)",
|
|
37
|
-
"status": "pending"
|
|
38
|
-
}
|
|
39
|
-
],
|
|
40
|
-
"evidence_refs": ["evidence/H1-cli-data.json"],
|
|
41
|
-
"evidence_summary": "What was actually discovered during testing",
|
|
42
|
-
"open_gaps": ["what is still missing — unmet testable prerequisites, undocumented-command gaps, out-of-band prerequisites, or a runtime-evidence contradiction"],
|
|
43
|
-
"resolution": null
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
"generation_context": {
|
|
47
|
-
"round": 1,
|
|
48
|
-
"trigger": "initial | scope_adjustment | deepening",
|
|
49
|
-
"parent_hypothesis": null,
|
|
50
|
-
"eliminated_ids": [],
|
|
51
|
-
"scope_at_generation": "process",
|
|
52
|
-
"needs_user_input": false,
|
|
53
|
-
"user_question": null
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Rules
|
|
59
|
-
|
|
60
|
-
- Hypothesis Generator creates/appends hypotheses, populates `signals_supporting` from the triage `signals` inventory (each hypothesis cites the signals that drove it), leaves `test_plan: []` and `signals_contradicting: []` — the tester writes those.
|
|
61
|
-
- Hypothesis Tester reads triage's `signals` array BEFORE writing `test_plan`. Any `to_confirm` / `to_eliminate` item already resolved by an existing signal becomes a `status: skipped` plan step with the signal name in `purpose`. After execution, the tester updates: `status`, `evidence_refs`, `evidence_summary`, and appends any new contradicting signals to `signals_contradicting`. See `schemas/state.schema.md` § Plan for plan-step structure.
|
|
62
|
-
- Hypothesis Tester writes `open_gaps` on `inconclusive`/`confirmed` (unmet testable prerequisites, undocumented-command gaps, out-of-band prerequisites, runtime-evidence contradictions). `status: confirmed` may carry `open_gaps` only for out-of-band items that do not block confirmation.
|
|
63
|
-
- Hypothesis Tester sets `is_root_cause` on confirm (`true` = evidence explains WHY, `false` = shows only WHAT). Orchestrator may override per its upstream-cause gate.
|
|
64
|
-
- Orchestrator updates: `resolution` field for confirmed root causes, after the depth-check verdict (the depth-verifier reads the playbook's `## Resolution`, not this field)
|
|
65
|
-
- Never remove eliminated hypotheses — they prevent retesting
|
|
66
|
-
- `parent` links sub-hypotheses to the confirmed symptom they're deepening
|
|
67
|
-
- `generation_context` tells the generator what happened before (for re-invocation)
|
|
68
|
-
- When deepening: orchestrator sets `generation_context.trigger: "deepening"` and `generation_context.parent_hypothesis` to the ID of the confirmed symptom before re-invoking the generator
|
|
69
|
-
- `source`: `playbook` for playbook-derived, `docsai` for documentation-derived, `evidence` for evidence-derived. This is the hypothesis-origin tag — distinct from the evidence-file `source` enum (`uip_cli | docsai | playbook | user | source_code`) in `evidence.schema.md`.
|
|
70
|
-
- `test_plan` step `status` enum is `pending | done | skipped` (see `state.schema.md` § Plan)
|
|
71
|
-
- The generator drafts hypotheses for every matched playbook — all confidence levels — in a single round (see `shared.md` § Single-round coverage rule), ranked by `signal_match_count`. `trigger: "scope_adjustment"` re-invocation is reserved for producing additional hypotheses from docsai once every playbook-derived hypothesis is eliminated. When a high-confidence hypothesis is confirmed, the orchestrator skips the lower-ranked remainder (subject to the co-equal-roots guard).
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Scope Check Schema
|
|
2
|
-
|
|
3
|
-
File: `.local/investigations/scope-check.json`
|
|
4
|
-
|
|
5
|
-
Created by: Scope Checker sub-agent
|
|
6
|
-
Read by: Orchestrator
|
|
7
|
-
|
|
8
|
-
## Structure
|
|
9
|
-
|
|
10
|
-
```json
|
|
11
|
-
{
|
|
12
|
-
"checked_after": "triage | test",
|
|
13
|
-
"current_domains": ["orchestrator"],
|
|
14
|
-
"missing_domains": [],
|
|
15
|
-
"unnecessary_domains": [],
|
|
16
|
-
"reasoning": "Why domains should be added/removed, or why current scope is correct"
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Rules
|
|
21
|
-
|
|
22
|
-
- Scope Checker writes this file after analyzing evidence against known product domains
|
|
23
|
-
- Orchestrator reads it to decide whether to expand or narrow scope
|
|
24
|
-
- `checked_after` records which phase triggered the scope check
|
|
25
|
-
- `missing_domains` lists domains that should be added based on evidence
|
|
26
|
-
- `unnecessary_domains` lists domains that are only reporting layers with no relevant playbooks
|
|
27
|
-
- If both `missing_domains` and `unnecessary_domains` are empty, the current scope is correct
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# Investigation State Schema
|
|
2
|
-
|
|
3
|
-
File: `.local/investigations/state.json`
|
|
4
|
-
|
|
5
|
-
Created by: Triage sub-agent
|
|
6
|
-
Read by: All sub-agents, orchestrator
|
|
7
|
-
Updated by: Orchestrator (phase transitions)
|
|
8
|
-
|
|
9
|
-
## Structure
|
|
10
|
-
|
|
11
|
-
```json
|
|
12
|
-
{
|
|
13
|
-
"id": "inv-YYYY-MM-DD-NNN",
|
|
14
|
-
"created_at": "ISO8601 timestamp",
|
|
15
|
-
"phase": "triage | hypotheses | test | evaluate | deepen | depth_check | resolution | complete",
|
|
16
|
-
"scope": {
|
|
17
|
-
"level": "platform | product | feature | process | activity",
|
|
18
|
-
"domain": ["orchestrator", "maestro", "integration-service", "ui-automation"],
|
|
19
|
-
"confidence": "high | medium | low"
|
|
20
|
-
},
|
|
21
|
-
"entry_point": {
|
|
22
|
-
"type": "job_id | error_message | queue_name | natural_language",
|
|
23
|
-
"value": "the raw identifier or description the user provided"
|
|
24
|
-
},
|
|
25
|
-
"triage_summary": "One-paragraph classification of the problem",
|
|
26
|
-
"user_context": "Original problem description from the user",
|
|
27
|
-
"investigation_guides": [
|
|
28
|
-
"references/investigation_guide.md",
|
|
29
|
-
"references/products/orchestrator/investigation_guide.md",
|
|
30
|
-
"references/products/maestro/investigation_guide.md"
|
|
31
|
-
],
|
|
32
|
-
"matched_playbooks": [
|
|
33
|
-
{
|
|
34
|
-
"confidence": "low",
|
|
35
|
-
"path": "references/products/maestro/playbooks/bpmn-job-stuck.md",
|
|
36
|
-
"signal_match_count": 3,
|
|
37
|
-
"signals_matched": ["job state is Running", "runtime type is ProcessOrchestration", "no incident error code"]
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"confidence": "low",
|
|
41
|
-
"path": "references/products/orchestrator/playbooks/job-stuck.md",
|
|
42
|
-
"signal_match_count": 2,
|
|
43
|
-
"signals_matched": ["job state is Running", "no error logs present"]
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
"eliminated_playbooks": [
|
|
47
|
-
{
|
|
48
|
-
"path": "references/activity-packages/system-activities/playbooks/get-asset-not-found.md",
|
|
49
|
-
"contradicting_signal": "playbook signature requires asset absent / HTTP 404 / error code 1002; evidence shows asset exists in the resolved folder"
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
"requirements": {
|
|
53
|
-
"folder_id": 2157426,
|
|
54
|
-
"source_code_path": "/path/to/project"
|
|
55
|
-
},
|
|
56
|
-
"plan": [
|
|
57
|
-
{
|
|
58
|
-
"n": 1,
|
|
59
|
-
"action": "uip <subcommand> --output json | tee raw/<file>.json",
|
|
60
|
-
"purpose": "what signal the step yields",
|
|
61
|
-
"feeds": "which downstream step / playbook / decision the result routes to",
|
|
62
|
-
"revise_if": "observed-field condition that mutates the remaining plan (empty if unconditional)",
|
|
63
|
-
"status": "pending"
|
|
64
|
-
}
|
|
65
|
-
]
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Investigation Guides
|
|
70
|
-
|
|
71
|
-
Resolved by triage. Always includes the generic guide (`references/investigation_guide.md`). Includes the product-specific guide if one exists. Other agents read these paths directly — they do NOT scan the references folder themselves.
|
|
72
|
-
|
|
73
|
-
## Matched Playbooks
|
|
74
|
-
|
|
75
|
-
Resolved by triage. Full paths to every playbook that matches the symptoms, with per-playbook signal-match data.
|
|
76
|
-
|
|
77
|
-
Fields per entry:
|
|
78
|
-
|
|
79
|
-
- `path` — relative path to the playbook from the skill root.
|
|
80
|
-
- `confidence` — the playbook's frontmatter confidence (`high | medium | low`). **This is a cap on how decisively the playbook can pin a root cause when matched** — `high` means the playbook describes a specific error with a known cause; `medium` means concrete troubleshooting steps but the conclusion depends on inspection of uncertain fields; `low` provides general context. **Confidence is not a ranking input — see signal_match_count.** Do NOT modify the frontmatter confidence.
|
|
81
|
-
- `signal_match_count` — integer count of how many distinct signature signals from the playbook's `## Context` and `## Investigation` sections the gathered evidence actually satisfies. A signal is a discrete fact: an exception class, a specific error code, a verbatim error fragment, an entity-state assertion, a package version, an activity-instance label, etc.
|
|
82
|
-
- `signals_matched` — array of short labels naming each signal that was satisfied (audit trail for `signal_match_count`).
|
|
83
|
-
|
|
84
|
-
**Ranking.** Matched playbooks are ordered by `signal_match_count` DESCENDING — highest specificity first, regardless of frontmatter confidence. A `medium`-confidence playbook with 3 matched signals ranks above a `high`-confidence playbook with 1 matched signal. The hypothesis generator drafts H1 from the top-ranked playbook, H2 from the second-ranked, etc. Ties on signal count are broken by frontmatter confidence (`high > medium > low`).
|
|
85
|
-
|
|
86
|
-
**Three categories of evidence-vs-playbook relationship:**
|
|
87
|
-
|
|
88
|
-
- **Positively supported** (`signal_match_count >= 1`) → list in `matched_playbooks`.
|
|
89
|
-
- **Silent** (evidence neither supports nor contradicts any of the playbook's signals) → do NOT list. The playbook is uninformed by the available evidence; it cannot be tested productively until more data exists.
|
|
90
|
-
- **Contradicted** (evidence directly disproves at least one CORE signal of the playbook signature) → do NOT list in `matched_playbooks`; instead record in `eliminated_playbooks` with the contradicting evidence. The hypothesis generator will not draft hypotheses from these.
|
|
91
|
-
|
|
92
|
-
A "core signal" is one named in the playbook's `## Context` or `## Investigation` as a required precondition for the cause to apply (e.g., "asset is absent / HTTP 404", "robot has no matching credentials", "connection ID returns 'invalid'"). Surface-level signals shared across siblings (e.g., "Get Asset activity") are NOT core signals — they're descriptors, not preconditions.
|
|
93
|
-
|
|
94
|
-
## Eliminated Playbooks
|
|
95
|
-
|
|
96
|
-
Playbooks whose signature was contradicted by triage evidence. Each entry records:
|
|
97
|
-
|
|
98
|
-
- `path` — playbook path.
|
|
99
|
-
- `contradicting_signal` — short sentence naming the playbook's required signal AND the contradicting evidence (e.g., "playbook requires asset absent; evidence shows asset exists in folder").
|
|
100
|
-
|
|
101
|
-
The hypothesis generator MUST exclude these from consideration. The depth-verifier MUST NOT confirm a hypothesis that maps to an eliminated playbook.
|
|
102
|
-
|
|
103
|
-
**Why count over confidence.** Multiple playbooks can match the same surface signal (e.g., "Get Asset activity failed" appears in five distinct get-asset playbooks at frontmatter `high`). Ranking purely on frontmatter confidence then surfaces 5-way false positives at HIGH. Counting actual signal hits per playbook discriminates between them: the one whose specific signature is most fully satisfied by the evidence wins. Frontmatter confidence still caps the root-cause certainty downstream (`high` matches can fast-path; `medium`/`low` require deeper testing) — but it does not decide ordering.
|
|
104
|
-
|
|
105
|
-
## Plan
|
|
106
|
-
|
|
107
|
-
The investigation plan is the agent's single, growing record of everything it intends to do. Triage starts with a one-step plan (classify the user's message) and appends steps as data arrives. **The plan IS the procedure** — there is no pre-plan or post-plan phase; every action the agent takes is a plan step that is recorded, executed, and audited.
|
|
108
|
-
|
|
109
|
-
Field semantics:
|
|
110
|
-
|
|
111
|
-
- `n` — step order (1-indexed; numbering grows as steps are appended).
|
|
112
|
-
- `action` — what the agent will do at this step. Action shapes:
|
|
113
|
-
- **Tool call** — an exact CLI command (with output capture), or `read <path>` for a file read.
|
|
114
|
-
- **User interaction** — `ask user: <question>` (free-text) or `ask user (select): <opt> | <opt> | …` (multi-choice surfaced via `AskUserQuestion`).
|
|
115
|
-
- **Reasoning** — a named decision the agent records without calling a tool: `classify (system, entity) from user message`, `re-evaluate scope against gathered evidence`, `match playbooks against in-scope summaries`, etc. The agent's reasoning + result is captured in `purpose` / step output.
|
|
116
|
-
- `purpose` — the specific signal or decision the step yields (one short phrase).
|
|
117
|
-
- `feeds` — which downstream step or decision consumes the result.
|
|
118
|
-
- `revise_if` — observed-field condition that mutates the remaining plan (add/drop steps). Empty if the step is unconditional.
|
|
119
|
-
- `status` — `pending | done | skipped`.
|
|
120
|
-
|
|
121
|
-
**The plan is revisable.** After each step the agent evaluates `revise_if` against the observed data, then appends/modifies remaining steps. If the just-completed step yields information that requires new steps not anticipated by any `revise_if` (a genuine discovery), the agent appends them with a one-line `purpose` before executing. The agent runs ONLY plan steps — never a freestyle command.
|
|
122
|
-
|
|
123
|
-
**Boundaries on what can appear in a plan:**
|
|
124
|
-
|
|
125
|
-
- No open-ended enumeration steps (no "search every folder", no tenant-wide sweep). Locate passes are single bounded calls with at least one filter (state, time window, or named anchor).
|
|
126
|
-
- No `get <unknown-id>` actions for entities that have not been located. A `get` step requires the id to be resolved by an earlier step.
|
|
127
|
-
- No undocumented commands. Every tool-call step must run a command documented in the matched investigation guide or the matched playbook's `## Investigation` section.
|
|
128
|
-
- A single Pass 2 extension is permitted when the initial pass yields weak matches; a Pass 3 is not.
|
|
129
|
-
|
|
130
|
-
The plan structure is reusable: any sub-agent that gathers data (triage, hypothesis-tester) writes a plan of its own. For the hypothesis-tester, the plan is stored on the hypothesis itself (`hypotheses.json` → per-hypothesis `test_plan`), not on `state.json`.
|
|
131
|
-
|
|
132
|
-
## Requirements
|
|
133
|
-
|
|
134
|
-
Generic key-value store for data gathered during the investigation. Any agent can read it; triage and orchestrator write to it.
|
|
135
|
-
|
|
136
|
-
- Keys are freeform — use descriptive names (e.g., `folder_id`, `source_code_path`, `queue_name`)
|
|
137
|
-
- Values are whatever was collected (string, number, etc.)
|
|
138
|
-
|
|
139
|
-
## Rules
|
|
140
|
-
|
|
141
|
-
- Triage sub-agent creates this file and resolves investigation guides, matched playbooks, and requirements
|
|
142
|
-
- Other agents read paths from `state.json` — they do NOT browse `references/` themselves (exception: triage, scope-checker, depth-verifier, and presenter browse references — see `shared.md` invariant 3)
|
|
143
|
-
- Orchestrator updates `phase` as the investigation progresses
|
|
144
|
-
- Any agent can read `requirements`; triage and orchestrator write to it
|
|
145
|
-
- The `scope` may be updated by the orchestrator when scope adjustment occurs
|