@event4u/agent-config 5.7.0 → 5.9.0
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/.agent-src/commands/agent-handoff.md +1 -1
- package/.agent-src/commands/agent-status.md +1 -1
- package/.agent-src/commands/agents/audit.md +1 -1
- package/.agent-src/commands/agents/init.md +1 -1
- package/.agent-src/commands/agents/user/accept.md +3 -3
- package/.agent-src/commands/agents/user/init.md +4 -4
- package/.agent-src/commands/agents/user/show.md +3 -3
- package/.agent-src/commands/agents/user/update.md +3 -3
- package/.agent-src/commands/agents/user.md +1 -1
- package/.agent-src/commands/agents.md +1 -1
- package/.agent-src/commands/analytics/prune.md +1 -1
- package/.agent-src/commands/analytics/show.md +1 -1
- package/.agent-src/commands/analytics.md +1 -1
- package/.agent-src/commands/bug-fix.md +1 -1
- package/.agent-src/commands/challenge-me.md +1 -1
- package/.agent-src/commands/chat-history/import.md +1 -1
- package/.agent-src/commands/chat-history/learn.md +1 -1
- package/.agent-src/commands/chat-history/show.md +1 -1
- package/.agent-src/commands/chat-history.md +1 -1
- package/.agent-src/commands/check-current-md.md +1 -1
- package/.agent-src/commands/condense.md +1 -1
- package/.agent-src/commands/context.md +1 -1
- package/.agent-src/commands/cost-report.md +1 -1
- package/.agent-src/commands/council.md +3 -3
- package/.agent-src/commands/create-pr/description-only.md +1 -1
- package/.agent-src/commands/create-pr.md +1 -1
- package/.agent-src/commands/e2e-heal.md +1 -1
- package/.agent-src/commands/e2e-plan.md +1 -1
- package/.agent-src/commands/feature.md +1 -1
- package/.agent-src/commands/fix/ci.md +1 -1
- package/.agent-src/commands/fix/portability.md +1 -1
- package/.agent-src/commands/fix/pr-bot-comments.md +1 -1
- package/.agent-src/commands/fix/pr-comments.md +1 -1
- package/.agent-src/commands/fix/pr-developer-comments.md +1 -1
- package/.agent-src/commands/fix/refs.md +1 -1
- package/.agent-src/commands/fix/seeder.md +1 -1
- package/.agent-src/commands/fix.md +1 -1
- package/.agent-src/commands/judge.md +1 -1
- package/.agent-src/commands/knowledge/cross-repo.md +1 -1
- package/.agent-src/commands/knowledge/forget.md +1 -1
- package/.agent-src/commands/knowledge/ingest.md +1 -1
- package/.agent-src/commands/knowledge/list.md +1 -1
- package/.agent-src/commands/knowledge.md +1 -1
- package/.agent-src/commands/memory/add.md +1 -1
- package/.agent-src/commands/memory/learn-low-impact.md +1 -1
- package/.agent-src/commands/memory/load.md +1 -1
- package/.agent-src/commands/memory/mine-session.md +1 -1
- package/.agent-src/commands/memory/promote.md +1 -1
- package/.agent-src/commands/memory/propose.md +1 -1
- package/.agent-src/commands/memory.md +1 -1
- package/.agent-src/commands/mode.md +1 -1
- package/.agent-src/commands/optimize/agents-dir.md +1 -1
- package/.agent-src/commands/optimize/augmentignore.md +1 -1
- package/.agent-src/commands/optimize/rtk.md +1 -1
- package/.agent-src/commands/optimize/skills.md +1 -1
- package/.agent-src/commands/optimize.md +1 -1
- package/.agent-src/commands/orchestrate.md +1 -1
- package/.agent-src/commands/override/create.md +1 -1
- package/.agent-src/commands/override/manage.md +1 -1
- package/.agent-src/commands/override.md +1 -1
- package/.agent-src/commands/package-reset.md +1 -1
- package/.agent-src/commands/prediction-pool.md +31 -12
- package/.agent-src/commands/profile/activate.md +81 -0
- package/.agent-src/commands/profile/deactivate.md +68 -0
- package/.agent-src/commands/profile/show.md +70 -0
- package/.agent-src/commands/profile.md +68 -0
- package/.agent-src/commands/project-health.md +1 -1
- package/.agent-src/commands/quality-fix.md +1 -1
- package/.agent-src/commands/roadmap/process-full.md +1 -1
- package/.agent-src/commands/roadmap/process-phase.md +1 -1
- package/.agent-src/commands/roadmap/process-step.md +1 -1
- package/.agent-src/commands/roadmap.md +1 -1
- package/.agent-src/commands/set-cost-profile.md +1 -1
- package/.agent-src/commands/skill/preview.md +3 -3
- package/.agent-src/commands/skill.md +1 -1
- package/.agent-src/commands/skills/discover.md +1 -1
- package/.agent-src/commands/skills.md +1 -1
- package/.agent-src/commands/sync-agent-settings.md +1 -1
- package/.agent-src/commands/sync-gitignore/fix.md +1 -1
- package/.agent-src/commands/sync-gitignore.md +1 -1
- package/.agent-src/commands/update-form-request-messages.md +1 -1
- package/.agent-src/skills/check-refs/SKILL.md +1 -1
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +1 -1
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/jira-integration/SKILL.md +1 -1
- package/.agent-src/skills/markitdown/SKILL.md +1 -1
- package/.agent-src/skills/prediction-pool-optimizer/SKILL.md +195 -77
- package/.agent-src/skills/prediction-pool-optimizer/evals/triggers.json +3 -1
- package/.agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +111 -16
- package/.agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +109 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +1 -1
- package/.agent-src/skills/script-writing/SKILL.md +1 -1
- package/.agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -1
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +52 -5
- package/.claude-plugin/marketplace.json +370 -366
- package/CHANGELOG.md +77 -0
- package/README.md +2 -2
- package/config/discovery/session-profiles.yml +37 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +183 -95
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +9 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +8 -4
- package/dist/mcp/registry-manifest.json +3 -3
- package/docs/architecture.md +1 -1
- package/docs/catalog.md +7 -3
- package/docs/contracts/command-clusters.md +2 -0
- package/docs/contracts/session-profile-overlay.md +120 -0
- package/docs/customization.md +26 -0
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +36 -0
- package/docs/decisions/ADR-038-canonical-settings-path.md +66 -0
- package/docs/decisions/ADR-039-claude-skills-untracked.md +139 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/development.md +12 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/layered-settings.md +8 -2
- package/docs/skills-catalog.md +5 -1
- package/llms.txt +4 -0
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_cli/cmd_doctor.py +180 -16
- package/scripts/_cli/cmd_versions.py +2 -2
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/_lib/agent_settings.py +52 -5
- package/scripts/_lib/agent_src.py +30 -0
- package/scripts/ai_council/session.py +5 -1
- package/scripts/audit_command_surface.py +7 -1
- package/scripts/audit_initial_context.py +10 -2
- package/scripts/check_gate_paths.py +117 -0
- package/scripts/check_references.py +51 -2
- package/scripts/check_release_published.py +145 -0
- package/scripts/check_test_coverage_diff.py +180 -0
- package/scripts/compile_router.py +5 -1
- package/scripts/condense.py +79 -2
- package/scripts/config/session_profiles.py +492 -0
- package/scripts/council_cli.py +5 -1
- package/scripts/hook_manifest.yaml +15 -7
- package/scripts/hooks/dispatch_hook.py +8 -0
- package/scripts/install-hooks.sh +2 -1
- package/scripts/install.py +76 -5
- package/scripts/inventory_abstraction_budget.py +6 -1
- package/scripts/lint_agents_md.py +11 -4
- package/scripts/lint_hook_concern_budget.py +5 -1
- package/scripts/lint_marketplace.py +18 -7
- package/scripts/lint_roadmap_ci_steps.py +5 -1
- package/scripts/lint_roadmap_complexity.py +5 -1
- package/scripts/mcp_server/prompts.py +5 -1
- package/scripts/prediction-pool/pool_winsim.py +236 -0
- package/scripts/prediction-pool/score_ev.py +188 -0
- package/scripts/profile_staleness_hook.py +69 -0
- package/scripts/release.py +54 -31
- package/scripts/roadmap_progress_hook.py +56 -6
- package/scripts/smoke_quickstart.py +3 -2
- package/scripts/sync_agent_settings.py +8 -3
- package/scripts/validate_agent_settings.py +5 -1
- package/scripts/validate_decision_engine.py +5 -1
- package/scripts/measure_roadmap_trajectory.py +0 -112
- package/scripts/verify_roadmap_closure.py +0 -327
|
@@ -95,17 +95,24 @@ and standing notes — so re-tuning later is fast.
|
|
|
95
95
|
Resolve the pool URL (`--pool-url` → saved analysis → ask). Then run the
|
|
96
96
|
optimizer skill's **rules pass** against the pool's rule page: exact result
|
|
97
97
|
vs. goal-difference vs. tendency points, bonus questions, joker rules,
|
|
98
|
-
quote/rarity scoring, special rules, deadlines, strategy limits. **
|
|
99
|
-
|
|
98
|
+
quote/rarity scoring, special rules, deadlines, strategy limits. **Enumerate
|
|
99
|
+
every open question as an explicit checklist** (scores AND every bonus /
|
|
100
|
+
award / special question) — that list is the run's contract; each entry must
|
|
101
|
+
reach an answer. **No tips before the rules are understood** — the whole
|
|
102
|
+
strategy depends on them.
|
|
100
103
|
|
|
101
104
|
### 4. Run the optimizer + offer the AI-council pass
|
|
102
105
|
|
|
103
106
|
Run [`prediction-pool-optimizer`](../skills/prediction-pool-optimizer/SKILL.md),
|
|
104
|
-
adapted to the event's sport (football / basketball / …):
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
adapted to the event's sport (football / basketball / …): a **de-vigged
|
|
108
|
+
consensus across the 5–10 biggest publicly-viewable bookmakers**
|
|
109
|
+
(sharp-weighted, never one portal) as the primary signal → expected value
|
|
110
|
+
under the Step-3 rules → participant field → tip. **Answer every entry on the
|
|
111
|
+
Step-3 checklist** — scores AND every bonus / award / special question (top
|
|
112
|
+
scorer, "team of the top scorer", group winners, most cards …); none blank.
|
|
113
|
+
Tournament/outright/award probabilities come from real markets **or** the
|
|
114
|
+
skill's executed Poisson helper — **never** a hallucinated "I simulated
|
|
115
|
+
10,000 runs".
|
|
109
116
|
|
|
110
117
|
**Offer the AI-council pass (default off).** Unless `--council` is set,
|
|
111
118
|
ask once:
|
|
@@ -128,13 +135,19 @@ first per [`ai-council`](../../../core/.agent-src.uncondensed/skills/ai-council/
|
|
|
128
135
|
|
|
129
136
|
Present the tips exactly as they would be entered, then **wait**:
|
|
130
137
|
|
|
131
|
-
| Match | Tip | Prob / EV | Risk | 1-line reason |
|
|
138
|
+
| Match | Tip | Prob / EV | Risk | 1-line reason | Books used |
|
|
132
139
|
|---|---|---|---|---|---|
|
|
133
140
|
|
|
134
|
-
Follow with group standings, the full bracket, and bonus-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
141
|
+
Follow with group standings, the full bracket, **and a bonus/special-answer
|
|
142
|
+
table with one row per open question from the Step-3 checklist — every entry
|
|
143
|
+
answered, none blank**:
|
|
144
|
+
|
|
145
|
+
| Question | Answer | Prob / EV | Risk | 1-line reason | Source (market / model) |
|
|
146
|
+
|---|---|---|---|---|---|
|
|
147
|
+
|
|
148
|
+
Then ask **whether to enter** and **into which pool** (the saved URL, a
|
|
149
|
+
different one, or none). Do **not** write the analysis yet (Step 9) — tips
|
|
150
|
+
are not yet confirmed.
|
|
138
151
|
|
|
139
152
|
### 6. Enter via Playwright (you log in)
|
|
140
153
|
|
|
@@ -189,6 +202,12 @@ file path. No commit. No push.
|
|
|
189
202
|
- **You log in; the agent never handles credentials.** Headful only.
|
|
190
203
|
- **The agent never submits** unless `--submit` or this-turn authorization.
|
|
191
204
|
- **Rules first.** No tips before the pool's scoring is parsed.
|
|
205
|
+
- **Answer every open question.** Scores AND every bonus / award / special
|
|
206
|
+
question; a run that ships scorelines only and leaves bonus questions blank
|
|
207
|
+
is incomplete.
|
|
208
|
+
- **Consensus odds, not one portal.** Build the base from a de-vigged,
|
|
209
|
+
sharp-weighted consensus across the 5–10 biggest viewable books — never
|
|
210
|
+
mirror a single bookmaker.
|
|
192
211
|
- **No hallucinated simulation.** Outright odds or executed Poisson code —
|
|
193
212
|
never a claimed-but-unrun Monte-Carlo.
|
|
194
213
|
- **Analysis is written only after tips are confirmed** (Step 9), never
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: profile:activate
|
|
4
|
+
tier: 2
|
|
5
|
+
cluster: profile
|
|
6
|
+
sub: activate
|
|
7
|
+
description: Activate a session profile — surface only the named profile/pack closure plus core artefacts, no persistence
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "activate the laravel/po/finance profile for this session, switch my surface to X, only show me X commands"
|
|
11
|
+
trigger_context: "user wants the surfaced commands/skills narrowed to one audience for the current session"
|
|
12
|
+
workspaces:
|
|
13
|
+
- agent-config-maintainer
|
|
14
|
+
packs:
|
|
15
|
+
- meta
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# /profile activate
|
|
19
|
+
|
|
20
|
+
Activate one or more session profiles / packs. Writes the expanded
|
|
21
|
+
`runtime.active_packs` overlay and re-biases the surfaced set for the rest
|
|
22
|
+
of the session.
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
### 1. Resolve + write the overlay
|
|
27
|
+
|
|
28
|
+
Run the helper (it resolves aliases ↔ pack ids, fails fast on a
|
|
29
|
+
not-installed pack, expands the `requires_hint` closure, and writes the
|
|
30
|
+
overlay **atomically**):
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
python3 -m scripts.config.session_profiles activate <name…> --json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- **Exit 0** → parse the JSON: `active_packs`, `closure_added`, `notes`.
|
|
37
|
+
- **Exit 2** (`error:` on stderr) → the token is unknown or the pack is
|
|
38
|
+
not installed. Surface the error verbatim and stop — do **not** write a
|
|
39
|
+
partial overlay. Suggest `/profile show` or naming an installed pack.
|
|
40
|
+
|
|
41
|
+
### 2. Confirm the switch
|
|
42
|
+
|
|
43
|
+
Announce, using the helper's output:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
> profile active: {active_packs}
|
|
47
|
+
> surfaced: {N} commands, {M} skills ({H} hidden behind inactive packs)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Get the counts from `python3 -m scripts.config.session_profiles show --json`.
|
|
51
|
+
|
|
52
|
+
### 3. Re-bias the surface for the rest of the session
|
|
53
|
+
|
|
54
|
+
From now until `/profile deactivate` (or a new session), when the user asks
|
|
55
|
+
"what can I do" / you list commands or skills, surface **only** the active
|
|
56
|
+
set. Compute it with:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
python3 -m scripts.config.session_profiles surface --json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`shown` = surface these; `hidden` = do not list them proactively. Core /
|
|
63
|
+
unscoped artefacts are always in `shown`.
|
|
64
|
+
|
|
65
|
+
**Execution is NOT gated.** If the user invokes a command/skill that is in
|
|
66
|
+
`hidden`, run it anyway and prepend one line:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
> note: `{name}` is from an inactive pack ({packs}); `/profile activate {pack}` to surface it.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Gotchas
|
|
73
|
+
|
|
74
|
+
- Never write to `.agent-settings.yml` — the overlay is local-only.
|
|
75
|
+
- Multiple names union: `/profile activate laravel po`.
|
|
76
|
+
- A corrupt overlay is ignored (fail-open) → re-run activate to repair it.
|
|
77
|
+
|
|
78
|
+
## See also
|
|
79
|
+
|
|
80
|
+
- [`/profile show`](show.md) · [`/profile deactivate`](deactivate.md)
|
|
81
|
+
- [`docs/contracts/session-profile-overlay.md`](../../../docs/contracts/session-profile-overlay.md)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: profile:deactivate
|
|
4
|
+
tier: 2
|
|
5
|
+
cluster: profile
|
|
6
|
+
sub: deactivate
|
|
7
|
+
description: Deactivate the session profile — clear the overlay (or drop named packs) so the full surface returns
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "deactivate the profile, clear my session profile, show everything again, reset the surface"
|
|
11
|
+
trigger_context: "user wants the full command/skill surface back after a profile was active"
|
|
12
|
+
workspaces:
|
|
13
|
+
- agent-config-maintainer
|
|
14
|
+
packs:
|
|
15
|
+
- meta
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# /profile deactivate
|
|
19
|
+
|
|
20
|
+
Clear the session-profile overlay (or remove only named packs). This is the
|
|
21
|
+
**explicit** deactivation trigger locked in Phase 0 (option a) — there is
|
|
22
|
+
no silent session reset.
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
### 1. Clear or narrow
|
|
27
|
+
|
|
28
|
+
- `/profile deactivate` (no args) → clear the whole overlay:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
python3 -m scripts.config.session_profiles deactivate --json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- `/profile deactivate <name…>` → remove only the **named packs** from the
|
|
35
|
+
active set (never their closure), so a shared dependency survives:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
python3 -m scripts.config.session_profiles deactivate <name…> --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Parse `active_packs` from the JSON.
|
|
42
|
+
|
|
43
|
+
### 2. Confirm
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
> profile cleared — full surface restored.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
or, when packs remain:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
> active now: {active_packs} — full surface for everything else.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Restore the full surface
|
|
56
|
+
|
|
57
|
+
Resume surfacing every command/skill from this point in the session.
|
|
58
|
+
|
|
59
|
+
## Gotchas
|
|
60
|
+
|
|
61
|
+
- Deactivation is idempotent — clearing an empty overlay is a no-op.
|
|
62
|
+
- Only named packs are removed: `/profile deactivate laravel` leaves `php`
|
|
63
|
+
and `engineering-base` active (they are their own entries in the overlay).
|
|
64
|
+
Removing a pack only ever widens the surface, never hides something.
|
|
65
|
+
|
|
66
|
+
## See also
|
|
67
|
+
|
|
68
|
+
- [`/profile activate`](activate.md) · [`/profile show`](show.md)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: profile:show
|
|
4
|
+
tier: 2
|
|
5
|
+
cluster: profile
|
|
6
|
+
sub: show
|
|
7
|
+
description: Show the active session profile — active packs and surfaced/hidden command+skill counts (observability surface)
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "show my active profile, which packs are active, what's surfaced this session, profile status"
|
|
11
|
+
trigger_context: "user wants to see the current session-profile state and what it hides"
|
|
12
|
+
workspaces:
|
|
13
|
+
- agent-config-maintainer
|
|
14
|
+
packs:
|
|
15
|
+
- meta
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# /profile show
|
|
19
|
+
|
|
20
|
+
Observability surface for the session-profile overlay — the diagnostic the
|
|
21
|
+
council required so a "wrong commands in /help" symptom is one command away
|
|
22
|
+
from its cause.
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
### 1. Read the state
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
python3 -m scripts.config.session_profiles show --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Fields: `active_packs`, `commands_shown`, `skills_shown`, `hidden_total`.
|
|
33
|
+
|
|
34
|
+
### 2. Report
|
|
35
|
+
|
|
36
|
+
- **No overlay** (`active_packs` empty):
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
> no profile active — full surface (everything shown).
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- **Overlay active:**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
> active packs: {active_packs}
|
|
46
|
+
> surfaced: {commands_shown} commands, {skills_shown} skills
|
|
47
|
+
> hidden behind inactive packs: {hidden_total}
|
|
48
|
+
> clear with /profile deactivate
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 3. (Optional) list the split
|
|
52
|
+
|
|
53
|
+
If the user asks *which* artefacts are hidden, run:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
python3 -m scripts.config.session_profiles surface --json
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
and list `hidden[]` (name + packs). Keep it scannable; group by pack if long.
|
|
60
|
+
|
|
61
|
+
## Gotchas
|
|
62
|
+
|
|
63
|
+
- `show` never writes — pure read, safe to run anytime.
|
|
64
|
+
- A corrupt overlay reads as empty (fail-open); if `show` reports "no
|
|
65
|
+
profile" right after an `activate`, the overlay file is malformed —
|
|
66
|
+
re-run `/profile activate`.
|
|
67
|
+
|
|
68
|
+
## See also
|
|
69
|
+
|
|
70
|
+
- [`/profile activate`](activate.md) · [`/profile deactivate`](deactivate.md)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: profile
|
|
4
|
+
tier: 2
|
|
5
|
+
description: Session-profile orchestrator — activate / deactivate / show the active packs for this session (recommendation-bias surface filter, no persistence)
|
|
6
|
+
cluster: profile
|
|
7
|
+
type: orchestrator
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "activate a profile for this session, switch to the laravel/po/finance surface, show which packs are active, deactivate the profile"
|
|
11
|
+
trigger_context: "user wants to narrow the surfaced commands/skills to one audience for the current session without changing committed config"
|
|
12
|
+
workspaces:
|
|
13
|
+
- agent-config-maintainer
|
|
14
|
+
packs:
|
|
15
|
+
- meta
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# /profile
|
|
19
|
+
|
|
20
|
+
Top-level orchestrator for the `/profile` family. Activates a **session
|
|
21
|
+
profile** — an ephemeral `runtime.active_packs` overlay that biases which
|
|
22
|
+
commands/skills are *surfaced* this session, without persisting anything
|
|
23
|
+
to committed config.
|
|
24
|
+
|
|
25
|
+
The overlay is a runtime modulation of the existing `pack` axis, **not** a
|
|
26
|
+
fifth axis (ADR-010 addendum, 2026-06-02). It is written to
|
|
27
|
+
`.agent-settings.local.yml` (in `agents/settings/`, gitignored, deepest
|
|
28
|
+
layer), never the committed `.agent-settings.yml`.
|
|
29
|
+
|
|
30
|
+
## Sub-commands
|
|
31
|
+
|
|
32
|
+
| Sub-command | Routes to | Purpose |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| `/profile activate <name…>` | `commands/profile/activate.md` | Surface only the named profile/pack closure + core artefacts |
|
|
35
|
+
| `/profile deactivate [name…]` | `commands/profile/deactivate.md` | Clear the overlay (or drop named packs) → full surface returns |
|
|
36
|
+
| `/profile show` | `commands/profile/show.md` | Active packs + surfaced/hidden counts (observability) |
|
|
37
|
+
|
|
38
|
+
`<name>` is a session-profile alias (`developer`, `po`, `finance`, `gtm`,
|
|
39
|
+
`content`) from `config/discovery/session-profiles.yml` **or** a raw pack
|
|
40
|
+
id from `config/discovery/packs.yml` (`laravel`, `php`, …). Multiple names
|
|
41
|
+
union their closures: `/profile activate laravel po`.
|
|
42
|
+
|
|
43
|
+
## Key facts (locked in Phase 0)
|
|
44
|
+
|
|
45
|
+
- **Recommendation-bias only.** Activation filters the *surfaced* set
|
|
46
|
+
(`/help` + `<available_skills>`); execution is **never gated** — an
|
|
47
|
+
inactive-pack command still runs, with a one-line notice.
|
|
48
|
+
- **Explicit deactivation.** The overlay survives an IDE restart; clear it
|
|
49
|
+
with `/profile deactivate`. A new session emits a staleness *notice*
|
|
50
|
+
(never a silent reset — the registry-refresh Catch-22, see
|
|
51
|
+
`agents/settings/contexts/session-host-capability-audit.md`).
|
|
52
|
+
- **Fail-open.** A corrupt overlay is ignored → the full surface returns.
|
|
53
|
+
- **Kill-switch.** Delete `runtime.active_packs` from the local file (or
|
|
54
|
+
the file itself) to reset.
|
|
55
|
+
|
|
56
|
+
## Dispatch
|
|
57
|
+
|
|
58
|
+
1. Parse `/profile <sub-command> [args]`.
|
|
59
|
+
2. Look up the sub-command above; load that file and follow its
|
|
60
|
+
`## Instructions` verbatim with the remaining args.
|
|
61
|
+
3. Bare `/profile` (no sub-command) → run `/profile show`.
|
|
62
|
+
4. Unknown sub-command → print the table and ask which the user meant.
|
|
63
|
+
|
|
64
|
+
## See also
|
|
65
|
+
|
|
66
|
+
- [`mode`](mode.md) — the persist-to-disk precedent this command deliberately avoids.
|
|
67
|
+
- [`docs/decisions/ADR-010-profile-pack-preset-boundary.md`](../../docs/decisions/ADR-010-profile-pack-preset-boundary.md) — axis boundary + overlay addendum.
|
|
68
|
+
- [`docs/contracts/session-profile-overlay.md`](../docs/contracts/session-profile-overlay.md) — overlay schema + surface-filter contract.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
model_tier:
|
|
2
|
+
model_tier: medium
|
|
3
3
|
name: skill:preview
|
|
4
4
|
tier: 2
|
|
5
5
|
cluster: skill
|
|
@@ -46,8 +46,8 @@ plain-language summary. `--format json` is machine-readable.
|
|
|
46
46
|
|
|
47
47
|
### 3. Present the summary
|
|
48
48
|
|
|
49
|
-
Show the plain-language preview: the skill's execution type (a manual
|
|
50
|
-
renders **"instructional only — no automatic execution"**; an assisted
|
|
49
|
+
Show the plain-language preview: the skill's execution type (a `manual` skill
|
|
50
|
+
renders **"instructional only — no automatic execution"**; an `assisted` skill
|
|
51
51
|
renders its proposed actions), declared steps, tools, and any file/command
|
|
52
52
|
targets. End on the contract reminder that preview shows *declared intent*, not
|
|
53
53
|
a guarantee of side-effect-freeness.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
model_tier:
|
|
2
|
+
model_tier: medium
|
|
3
3
|
name: finishing-a-development-branch
|
|
4
4
|
description: "Use when the feature is implementation-complete and the next step is 'ship it' — verifies, cleans up, and routes to merge/PR/park/discard — even when the user just says 'I'm done, what now?'."
|
|
5
5
|
domain: process
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
model_tier:
|
|
2
|
+
model_tier: medium
|
|
3
3
|
name: git-workflow
|
|
4
4
|
description: "Use when working with Git — branch naming, commit messages, PR creation, rebasing, or the code review process — even when the user says 'push this' or 'merge the branch' without naming Git."
|
|
5
5
|
domain: process
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
model_tier:
|
|
2
|
+
model_tier: medium
|
|
3
3
|
name: markitdown
|
|
4
4
|
description: "Use when converting PDF, DOCX, XLSX, PPTX, EPUB, images, or audio to Markdown for LLM ingestion via the upstream markitdown-mcp server — 'extract this PDF', 'OCR this image', 'transcribe this audio'."
|
|
5
5
|
status: active
|