Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
0de31aa
test: define skill capability contract immunity
Trecek Jul 23, 2026
cddad0c
feat: add exact skill execution contracts
Trecek Jul 23, 2026
544ea33
feat: resolve effective skill invocations
Trecek Jul 23, 2026
808b48a
feat: bind resumable skill session contracts
Trecek Jul 23, 2026
45df8fa
feat: validate semantic skill capabilities
Trecek Jul 23, 2026
13f04bd
feat: project agent-facing skill documents
Trecek Jul 23, 2026
4b4e51a
test: verify skill capability contract immunity
Trecek Jul 23, 2026
2285cbc
fix: bind skill dispatch to persisted capability contracts
Trecek Jul 23, 2026
5349e26
fix: close skill capability contract audit gaps
Trecek Jul 23, 2026
4eaa41d
fix: complete skill capability contract remediation
Trecek Jul 23, 2026
7a75c5d
fix: close capability contract audit findings
Trecek Jul 23, 2026
9d07920
fix: complete capability contract audit remediation
Trecek Jul 24, 2026
19b3135
fix: close remaining capability contract audit gaps
Trecek Jul 24, 2026
f4addc4
fix(review): freeze persisted digest authority
Trecek Jul 24, 2026
0ba7346
fix(review): validate persisted boolean authority
Trecek Jul 24, 2026
8b345b4
fix(review): restore persisted resume command
Trecek Jul 24, 2026
223a124
fix(review): preserve resumed closure write scope
Trecek Jul 24, 2026
ea2d237
fix(review): encapsulate skill contract lifecycle
Trecek Jul 24, 2026
0be7703
fix(review): recognize tilde capability fences
Trecek Jul 24, 2026
6c275aa
fix(review): validate effective invocation authority
Trecek Jul 24, 2026
5d11d87
fix(review): reject symlinked project skills
Trecek Jul 24, 2026
5e6512b
fix(review): scope namespace metadata to admitted skills
Trecek Jul 24, 2026
b079621
fix(review): preserve run skill structural guards
Trecek Jul 24, 2026
6677e26
fix(review): restore replayed closure write paths
Trecek Jul 24, 2026
b073ee9
test(review): align invocation guard expectations
Trecek Jul 24, 2026
a1701ab
fix(review): separate available namespace targets
Trecek Jul 24, 2026
ef82014
test(review): scope namespace contract to available skills
Trecek Jul 24, 2026
1ab360d
fix(review): preserve durable verification evidence
Trecek Jul 24, 2026
ccd5fef
fix(review): type session contract store boundary
Trecek Jul 24, 2026
8e2dec1
fix(review): bind projection conventions to backend
Trecek Jul 24, 2026
4e72bef
fix(review): publish immutable shared projections
Trecek Jul 24, 2026
de2d1c1
fix(review): project configured default base branch
Trecek Jul 24, 2026
e73e093
test(review): pin doctor feasibility result identity
Trecek Jul 24, 2026
16baf11
test(review): assert exact resolved skill closure
Trecek Jul 24, 2026
2063de0
fix(review): route projection locking through core guard
Trecek Jul 24, 2026
58383d9
fix(review): preserve branch defaults across dispatch paths
Trecek Jul 24, 2026
783648c
fix(review): normalize core contract exports
Trecek Jul 24, 2026
c23173f
test(review): include workspace in plugin cache cascade
Trecek Jul 24, 2026
f7cecb5
test(review): align cascade union expectation
Trecek Jul 24, 2026
c066608
fix: eliminate repeated skill contract scans
Trecek Jul 24, 2026
ccebe89
fix(review): validate projection substitution shape
Trecek Jul 24, 2026
2f7ac7c
fix(review): derive direct dispatch authority from contract
Trecek Jul 24, 2026
440d6c6
fix(review): reject malformed persisted booleans
Trecek Jul 24, 2026
5c297b7
fix(review): invalidate malformed direct skill contracts
Trecek Jul 24, 2026
5a5baaa
fix(review): include namespace sources in projection cache key
Trecek Jul 24, 2026
6e1bd12
fix(review): rebuild invalid projection cache entries
Trecek Jul 24, 2026
330b8d7
fix(review): type skill authority across core boundary
Trecek Jul 24, 2026
4f73b49
fix(review): align authority fixtures and stub
Trecek Jul 24, 2026
4283f01
fix(review): deduplicate internal skill overrides
Trecek Jul 24, 2026
fe4c739
fix(review): attest materialized projection bytes
Trecek Jul 24, 2026
c77e5a6
fix(review): render cross-skill backend sigils
Trecek Jul 24, 2026
993f2e6
fix(review): contain project skill search roots
Trecek Jul 24, 2026
3e10f10
fix(review): fail closed on override I/O errors
Trecek Jul 24, 2026
60c87c6
fix(review): classify every git commit form
Trecek Jul 24, 2026
b77bae9
fix(review): classify GitHub write variants
Trecek Jul 24, 2026
8bf7ff3
fix(review): preserve workspace source budget
Trecek Jul 24, 2026
832c86c
test(review): keep projection coverage layer-safe
Trecek Jul 24, 2026
189c003
fix(review): ignore prohibited capability examples
Trecek Jul 24, 2026
75d56af
fix(review): reject non-object persisted skill contracts
Trecek Jul 24, 2026
2b8bd87
fix(review): enforce SkillInfo source identity coherence
Trecek Jul 24, 2026
7dbfc5a
fix(review): type skill visibility at composition boundaries
Trecek Jul 24, 2026
b2a106f
fix(review): satisfy typed visibility integration contracts
Trecek Jul 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .autoskillit/skills/audit-feature-gates/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
name: audit-feature-gates
categories: [audit]
uses_capabilities: [agent_model]
description: >
Audit feature flag isolation — traces import chains, runtime gates, tool/skill
tag coverage, UI surfaces, and test markers to detect leakage and miswiring.
Expand Down
1 change: 1 addition & 0 deletions .autoskillit/skills/eval-agent/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
name: eval-agent
categories: [eval]
uses_capabilities: [agent_subagent]
description: >
Invoke a named agent definition against a provided prompt and capture its output.
Execution primitive for the agent-eval recipe — isolates a single agent invocation.
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/audit-bugs/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
name: audit-bugs
uses_capabilities: [claude_dir]
description: Analyze historical bug patterns by mining Claude Code project logs for /investigate skill invocations since a specified date. Identifies recurring root causes, architectural gaps, and proactive detection strategies. Use when user says "audit bugs", "bug patterns", "analyze investigations", or "bug audit".
hooks:
PreToolUse:
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/chart-course/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
name: chart-course
uses_capabilities: [agent_model, cross_skill_ref]
description: Interactive strategic compass builder. Guides the user through mapping all possible project directions with progressive codebase analysis, web research, and architectural diagrams at every step. Produces a machine-readable compass document for downstream alignment tracking.
hooks:
PreToolUse:
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/check-bearing/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
name: check-bearing
uses_capabilities: [agent_model]
description: Assess a branch or PR's alignment with the strategic compass. Evaluates whether changes advance, drift from, or close off strategic directions. Produces an alignment dashboard with per-direction impact analysis and a verdict.
hooks:
PreToolUse:
Expand Down
47 changes: 36 additions & 11 deletions .claude/skills/promote-to-main/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
name: promote-to-main
categories: [github]
uses_capabilities: [agent_model, cross_skill_ref, github_api_write]
description: >
Promote integration to main with comprehensive changelog and PR creation. Use when
user says "promote to main", "open promotion PR", "integration to main", or
Expand Down Expand Up @@ -96,10 +97,7 @@ working directory.
```bash
mkdir -p .autoskillit/temp/promote-to-main
python3 - <<'EOF' > .autoskillit/temp/promote-to-main/token_summary.md 2>/dev/null || true
import json, pathlib, sys
from autoskillit.pipeline.tokens import DefaultTokenLog
from autoskillit.pipeline.telemetry_fmt import TelemetryFormatter
from autoskillit.execution.session_log import resolve_log_dir
import json, os, pathlib, sys

cfg_path = pathlib.Path(".autoskillit") / "temp" / ".hook_config.json"
kitchen_id = ""
Expand All @@ -108,14 +106,41 @@ if cfg_path.exists():
if isinstance(_cfg, dict):
kitchen_id = _cfg.get("kitchen_id") or _cfg.get("pipeline_id", "")

log_root = resolve_log_dir("")
tl = DefaultTokenLog()
n = tl.load_from_log_dir(log_root, kitchen_id_filter=kitchen_id)
if n == 0:
log_root = os.environ.get("AUTOSKILLIT_LOG_DIR", "")
if not log_root:
sys.exit(0)
steps = tl.get_report()
total = tl.compute_total()
print(TelemetryFormatter.format_token_table(steps, total))
tl_path = pathlib.Path(log_root)
if not tl_path.exists():
sys.exit(0)

total_input = total_output = 0
session_count = 0
for session_dir in sorted(tl_path.iterdir()):
if not session_dir.is_dir():
continue
token_file = session_dir / "tokens.json"
if not token_file.exists():
continue
try:
data = json.loads(token_file.read_text())
if kitchen_id and data.get("kitchen_id") != kitchen_id:
continue
session_count += 1
total_input += data.get("input_tokens", 0)
total_output += data.get("output_tokens", 0)
except (json.JSONDecodeError, OSError, TypeError):
continue

if session_count == 0:
sys.exit(0)

header = "| Metric | Value |\n|---|---|\n"
rows = (
f"| Sessions | {session_count} |\n"
f"| Input Tokens | {total_input:,} |\n"
f"| Output Tokens | {total_output:,} |\n"
)
print(header + rows)
EOF
```

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/review-promotion/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
name: review-promotion
categories: [github]
uses_capabilities: [agent_model]
description: >
Reviewer-facing deep analysis of an integration-to-main promotion. Performs domain
risk scoring, breaking change audit, regression risk assessment, test coverage delta,
Expand Down
1 change: 1 addition & 0 deletions .claude/skills/validate-audit/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
name: validate-audit
categories: [audit]
uses_capabilities: [agent_model, github_api_write]
description: Validate audit findings from audit-arch, audit-tests, or audit-cohesion against actual code, git history, and design intent using 9–10 parallel subagents. Removes contested findings, documents exceptions, adjusts severities. Use when user says "validate audit", "validate findings", "validate report", or "check audit results".
hooks:
PreToolUse:
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ multi-level orchestrator. The bundled recipes implement issue → plan → workt
- [research/audit-trail-format.md](research/audit-trail-format.md) — audit/ artifact structure and lifecycle
- [research/codex-delivery-conformance.md](research/codex-delivery-conformance.md) — Codex recipe envelope/pull conformance and protected-host blocker
- [audit/surface-freeze-checklist.md](audit/surface-freeze-checklist.md) — commands.py public import surface freeze checklist
- [verification/review-pr-immunity.md](verification/review-pr-immunity.md) — deterministic review-pr projection matrix and live provider-attempt record
- [phoropter/](phoropter/README.md) — phoropter lens framework: execution contracts, recipe blocks, synthesis strategies, and authoring guide
9 changes: 6 additions & 3 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -334,9 +334,12 @@ skills:
# ...
```

Any bundled skill can be promoted or demoted by adding it to the desired tier list. A skill
in multiple tiers simultaneously is a validation error. See **[Skill Visibility](skills/visibility.md)**
for the full tier breakdown, session mode table, and override rules.
Session-role skills can be promoted or demoted by adding them to the desired tier list. A
skill in multiple tiers simultaneously is a validation error. Exact-role orchestration
skills are not user-tiered: `process-issues`, for example, is exposed only in L2
orchestrator catalogs and a configuration that adds it to a session tier is rejected.
See **[Skill Visibility](skills/visibility.md)** for the full tier breakdown, session mode
table, role-derived catalogs, and override rules.

## Subset Categories

Expand Down
11 changes: 5 additions & 6 deletions docs/design/acp-session-contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ The contract nudge exclusively targets `session/resume`; it never invokes
## Section 3: Capabilities Translation

`BackendCapabilities` (`src/autoskillit/core/types/_type_backend.py`,
frozen dataclass, 41 fields total) declares feature flags the orchestrator
frozen dataclass, 40 fields total) declares feature flags the orchestrator
consumes when selecting an ACP rung or backend-specific code path. Each field
falls into one of three categories:

Expand All @@ -186,7 +186,7 @@ falls into one of three categories:
outside the exemption set. Membership is validated against `_FORWARD_DECLARED`
in `tests/arch/test_capability_consumption.py`.

The counts below are **17 ACP-Mappable + 6 Forward-Declared + 18 autoskillit-Local = 41 total**.
The counts below are **17 ACP-Mappable + 6 Forward-Declared + 17 autoskillit-Local = 40 total**.

### 3.1 Category 1: ACP-Mappable (17 fields)

Expand All @@ -210,11 +210,10 @@ The counts below are **17 ACP-Mappable + 6 Forward-Declared + 18 autoskillit-Loc
| `record_capable` | ACP scenario recording |
| `inspector_capable` | ACP health monitoring callback (Health Inspector per issue #3533) |

### 3.2 Category 2: autoskillit-Local Extension (18 fields)
### 3.2 Category 2: autoskillit-Local Extension (17 fields)

| Field | autoskillit-specific contract |
|---|---|
| `project_local_skills_capable` | autoskillit `.claude/skills/` discovery (Claude: `True`; Codex: `False`) |
| `supports_tool_list_changed` | autoskillit kitchen reveal timing (tool list notification) |
| `required_skill_fields` | autoskillit `SKILL.md` validation (`frozenset({"name", "description"})`) |
| `applicable_guards` | autoskillit guard script enforcement (Claude: `{"skill_load_guard"}`; Codex: `{"write_guard"}`) |
Expand Down Expand Up @@ -362,7 +361,7 @@ warning (the others are static no-ops with no observable behavior).
| §2 RetryReason enum | `RetryReason` | `src/autoskillit/core/types/_type_enums.py` lines 44–64 |
| §2 Retry routing | `_compute_retry`, `_build_skill_result` overrides | `src/autoskillit/execution/session/_retry_fsm.py`, `src/autoskillit/execution/headless/_headless_result.py` |
| §2 Contract nudge | `_attempt_contract_nudge`, `_merge_token_usage` | `src/autoskillit/execution/headless/_headless_recovery.py` |
| §3 Capabilities | `BackendCapabilities` (41 fields) | `src/autoskillit/core/types/_type_backend.py` |
| §3 Capabilities | `BackendCapabilities` (40 fields) | `src/autoskillit/core/types/_type_backend.py` |
| §3 Forward-declared | `_FORWARD_DECLARED` | `tests/arch/test_capability_consumption.py` |
| §4 Codex flags | `CodexFlags` | `src/autoskillit/execution/backends/codex.py` lines 98–107 |
| §4 Codex discard sites | `codex.py` F841 / warning sites | `src/autoskillit/execution/backends/codex.py` |
| §4 Codex discard sites | `codex.py` F841 / warning sites | `src/autoskillit/execution/backends/codex.py` |
Loading
Loading