Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
186 commits
Select commit Hold shift + click to select a range
da377b3
chore(wip): preserve local worktree changes
Jul 28, 2026
a309cb5
style(tests): align versioning imports
Jul 28, 2026
823cfd4
Merge remote-tracking branch 'origin/0.12.0-dev' into bugfix/mro-pd8f…
Jul 28, 2026
e391ea1
Merge remote-tracking branch 'origin/0.12.0-dev' into feature/mro-p68…
Jul 28, 2026
d4f367f
Merge remote-tracking branch 'origin/0.12.0-dev' into feature/mro-1o6…
Jul 28, 2026
ae84cb3
fix(workspace): advance generic setup owner
Jul 29, 2026
6720ec8
chore(workspace): advance codegen diagnostics
Jul 29, 2026
2163ed3
chore(workspace): advance archive lint policy
Jul 29, 2026
f00b2ea
chore(workspace): absorb generated 0.12 dev baseline
Jul 29, 2026
14cd128
chore(conform): apply managed workspace projections
Jul 29, 2026
e0d1334
chore(workspace): publish 0.12.0-dev member gitlink baseline
Jul 29, 2026
eca0da8
chore(deps): advance flext-cli, flext-core, flext-infra pointers on 0…
Jul 29, 2026
6420238
chore(deps): advance flext-cli, flext-core, flext-infra pointers on 0…
marlonsc Jul 29, 2026
8881aec
fix(deps): advance flext-infra pointer to uv-parse-safe pyproject.toml
Jul 29, 2026
05714e3
fix(deps): advance flext-infra pointer to uv-parse-safe pyproject.toml
Jul 29, 2026
dfb914e
fix(deps): advance flext-tests pointer for discovery aliases
Jul 29, 2026
59a8a8e
fixes
Jul 30, 2026
56e1b95
fixes
Jul 30, 2026
17bd724
fixes
Jul 30, 2026
e5a296a
fixes
Jul 30, 2026
0a05918
fixes
Jul 30, 2026
3a428e6
Merge branch 'feature/mro-p68a-release' into 0.12.0-dev
Jul 30, 2026
25fa4a3
Merge remote-tracking branch 'refs/remotes/origin/0.12.0-dev' into 0.…
Jul 30, 2026
e615c26
Merge branch 'feature/mro-1o6t-governance' into 0.12.0-dev
Jul 30, 2026
8ba80ba
Merge branch 'feature/mro-ydhf-docs-local' into 0.12.0-dev
Jul 30, 2026
9de2111
fixes
Jul 30, 2026
bcf36c0
fixes
Jul 30, 2026
32b84ab
fixes
Jul 30, 2026
bf55717
fixes
Jul 30, 2026
7778bd7
fix(submodules): align flext-api gitlink to origin/0.12.0-dev
Jul 30, 2026
45c2fbd
fixes
Jul 30, 2026
a8686b2
chore(submodules): align flext-infra gitlink to current 0.12.0-dev HEAD
Jul 30, 2026
34ffaec
fixup: restore libs/versioning.py from origin/0.12.0-dev
Jul 30, 2026
c8f63c6
fix(flext-root): resolve Makefile merge conflict and unpin uv version
Jul 30, 2026
1b93b72
chore(core/tests): bump workspace submodule pointers for core/tests f…
Jul 30, 2026
68dc59b
chore(flext-core): update submodule to 1219a3c21
Jul 30, 2026
3fa616c
chore(gitlinks): record converged 0.12.0-dev submodule pointers
Jul 30, 2026
476aac6
chore(codegen): regenerate root managed surfaces and align script doc…
Jul 30, 2026
cc9f607
chore(gitlinks): record conformed 0.12.0-dev member pointers
Jul 30, 2026
adf9834
chore(gitlink): record converged flext-infra 0.12.0-dev
Jul 30, 2026
3e86a65
chore(lock): refresh uv.lock for flext-infra runtime lint dependencies
Jul 30, 2026
fe5bd79
chore(gitlink): record flext-meltano facade restoration
Jul 30, 2026
4203456
merge: reconcile origin/main into 0.12.0-dev
Jul 30, 2026
06e096e
chore(gitlinks): record flext-meltano and flext-target-ldap facade co…
Jul 30, 2026
953b429
chore(gitlink): record flext-target-ldap ruff suppression
Jul 30, 2026
a9c5136
chore(gitlink): record flext-target-ldap public facade test migration
Jul 30, 2026
d6224bc
chore(gitlink): record infra transaction repairs and target-ldap faca…
Jul 30, 2026
d5b64ae
fix(beads): point the ledger at the declared mro database on the shar…
Jul 30, 2026
596aef7
fix(workspace): migrate topology manifest to schema v3
Jul 30, 2026
9d6be4c
chore(gitlinks): point managed members to converged 0.12.0-dev tips
Jul 30, 2026
e51bfc8
chore(workspace): migrate config/workspace.yaml to schema v3
Jul 30, 2026
50f2a22
hotfix(ci-matrix): checkout submodules recursively in distro/macos/wi…
Jul 30, 2026
31d481f
chore(gitlinks): sync flext-ldif and flext-tests to latest 0.12.0-dev
Jul 30, 2026
70df9fb
chore(gitlink): point flext-tests to 0.12.0-dev tip with format fix
Jul 30, 2026
aab196b
hotfix(ci-matrix): checkout submodules recursively
Jul 30, 2026
1307fb8
merge: reconcile origin/0.12.0-dev into the converge lane
Jul 30, 2026
5ac642c
chore(gitlinks): advance flext-api/infra/meltano to latest 0.12.0-dev…
Jul 30, 2026
5a8fd2a
gitlink(flext-infra): point submodule to feature/mro-makp-provenance-…
Jul 30, 2026
b3dd39f
chore(gitlink): advance flext-meltano to 4b7a1d97
Jul 30, 2026
334758e
gitlink(flext-infra): bump to bef026b1 (regenerated ci-matrix provena…
Jul 30, 2026
ff62d98
gitlink(flext-infra): bump to feature/mro-makp-provenance-markers mer…
Jul 30, 2026
41e4cb6
chore(gitlinks): advance flext-api and flext-oracle-oic gate fixes
Jul 30, 2026
a1972b2
chore(gitlink): advance flext-observability to gate-fix tip
Jul 30, 2026
a5057ea
chore(gitlinks): advance auth/api/observability/oic gate fixes
Jul 30, 2026
8c9bda8
chore(gitlinks): advance flext-grpc, flext-meltano, flext-plugin gate…
Jul 30, 2026
8b4e110
gitlink(flext-infra): adopt gen-verb fusion + schema-v61 beads pin (f…
Jul 30, 2026
238cf91
gitlink: fast-forward 7 members to origin/0.12.0-dev tips
Jul 30, 2026
7b5aef6
chore(infra): advance flext-infra gitlink to 3419a5c0 and reconcile u…
Jul 30, 2026
d94b173
chore(gitlink): advance flext-meltano namespace fixes
Jul 30, 2026
22b49a9
gitlink(flext-infra): merge origin/0.12.0-dev with committed-tracker …
Jul 30, 2026
bca4bdb
gitlink(flext-infra): test fixtures aligned to schema v3 (3fefa113)
Jul 30, 2026
821aec8
gitlink(flext-infra): ruff-clean test fixtures (c301c73c)
Jul 30, 2026
5018269
gitlink(flext-infra): gitmodules fixed-point template fix (38ea3787)
Jul 30, 2026
7d1cb31
chore(codegen): adopt gen-verb fused root projections (make gen, sect…
Jul 30, 2026
df66a5d
chore(root): drop dead custom.mk verb aliases; dockerignore bootstrap…
Jul 30, 2026
7c4f47f
gitlink(flext-meltano): converge to 0.12.0-dev tip (089388af)
Jul 30, 2026
62dbd0b
gitlink(flext-infra): converge to 0.12.0-dev tip (94c2edfa)
Jul 30, 2026
75cdc12
chore(root): remove retired convenience-alias block from custom.mk
Jul 30, 2026
92db35c
gitlink(flext-infra): setup-provisions-only contract (3c06c590)
Jul 30, 2026
e200329
gitlink(flext-infra): converge to 0.12.0-dev tip (8757f6a8, transacti…
Jul 30, 2026
436b94a
gitlink(flext-infra): transaction beads-lifecycle skip (da582940)
Jul 30, 2026
ba4f024
gitlink(flext-infra): Go toolchain + beads transaction fixes (3a3eafdc)
Jul 30, 2026
c2cc9d9
gitlink(flext-ldap): advance 0.12.0-dev with type fixes and public-AP…
Jul 31, 2026
dc1f3c1
merge 0.12.0-dev into pep-canonical-layout (adopt upstream tip)
Jul 31, 2026
63a2109
chore(workspace): declare flext-infra basemk extra verb in the manifest
Jul 31, 2026
20425c1
gitlink(flext-infra): converge to d07e82a5 (post-merge setup-contract…
Jul 31, 2026
81f88d5
gitlink(flext-infra): CI-aware beads skip + merged 0.12.0-dev tip (bd…
Jul 31, 2026
a97984e
gitlink: advance all submodules to regenerated managed surfaces
Jul 31, 2026
9f99827
merge: adopt origin/0.12.0-dev into pep-canonical-layout
Jul 31, 2026
4b6d4c1
gitlink(flext-infra): merge latest origin/0.12.0-dev (f0757a57)
Jul 31, 2026
06691d5
gitlink(flext-infra): merge latest origin/0.12.0-dev (00282c06)
Jul 31, 2026
5d25120
gitlink: adopt merged origin/0.12.0-dev tips across all submodules (f…
Jul 31, 2026
1839318
gitlink: adopt schema-v61 beads pin regeneration across all submodule…
Jul 31, 2026
0723414
gitlink(flext-infra): converge to 3d993bbc (merged model-driven Beads…
Jul 31, 2026
436b758
chore(codegen): advance every member gitlink to the schema-v61 beads pin
Jul 31, 2026
e7fae49
Merge remote-tracking branch 'origin/integration/mro-e9j0-6-converge-…
Jul 31, 2026
8cc1d2c
gitlink(flext-infra): converge to 057923d6 (regenerated surfaces afte…
Jul 31, 2026
06b89b5
gitlink(flext-infra): required ledger_root contract (ed053532)
Jul 31, 2026
982c857
gitlink(flext-infra): pytest process deadline from PR #72 (21e94a72)
Jul 31, 2026
6ea3d5f
chore(superproject): advance flext-infra to dd48f8637 (pytest runner …
Jul 31, 2026
1f99a7b
chore(superproject): advance flext-infra to 66c59cda9 (PRs 64/74/76/7…
Jul 31, 2026
5fefeb2
chore(deps): bump flext-core gitlink to the returns-free result contract
Aug 1, 2026
9e20416
chore(deps): record published flext-infra and flext-cli gitlinks
Aug 1, 2026
d1692c5
chore(deps): advance flext-infra gitlink to published 0.12.0-dev head
Aug 1, 2026
b6511b1
chore(deps): advance flext-infra gitlink to the restored config load
Aug 1, 2026
a31fd85
chore(deps): advance flext-infra gitlink through the stabilization ch…
Aug 1, 2026
7c27423
chore(deps): advance flext-infra gitlink through the topology and cat…
Aug 1, 2026
d2ffad2
chore(deps): advance flext-infra gitlink to a fully green suite
Aug 1, 2026
8bfda8d
chore(deps): advance flext-infra gitlink with the corrected CI matrix
Aug 1, 2026
eca8797
fix(codegen): propagate direnv activation across fleet
Aug 1, 2026
8149a66
fix(release): repair the changelog array expansion and adopt the rege…
Aug 1, 2026
a0ff446
chore(workspace): regenerate managed root baseline from canonical SSOT
Aug 1, 2026
1923968
chore(workspace): regenerate root Makefile and pre-commit from canoni…
Aug 1, 2026
64f70ad
chore(workspace): advance flext-infra gitlink to 57d99d356
Aug 1, 2026
6404da3
chore(workspace): advance flext-infra gitlink to 33937fbc4
Aug 1, 2026
012f17a
chore(workspace): advance flext-infra gitlink to d3a2031c2
Aug 1, 2026
16bb15b
chore(workspace): advance flext-infra gitlink to 263e775d3
Aug 1, 2026
b02f14b
chore(workspace): advance flext-infra gitlink to f1a47ebc7
Aug 2, 2026
a15f4b9
fixes
Aug 2, 2026
39c8127
fixes
Aug 2, 2026
b020db6
chore(gitlink): avanca flext-infra para 6bc4c489a
Aug 2, 2026
a392dfd
chore(workspace): advance flext-infra and flext-cli gitlinks
Aug 2, 2026
b9c87cd
docs(commit): correct the scope of a392dfd57
Aug 2, 2026
a121d78
chore(workspace): advance flext-infra gitlink to a663c83de
Aug 2, 2026
f303cec
chore(gitlink): avanca flext-infra para 78160592b
Aug 2, 2026
472f2d7
chore(gitlink): avanca flext-infra para 2eff87655
Aug 2, 2026
d47c07d
chore(workspace): adopt WIP — regenerated managed surfaces + submodul…
Aug 2, 2026
f5afbba
Merge branch 'integration/mro-e9j0-6-converge-0120' into 0.12.0-dev
Aug 2, 2026
65d8176
merge(no-ff): integration/gitflow-audit-rtlu-0120 -> 0.12.0-dev
Aug 2, 2026
e7e8111
chore(workspace): advance gitlinks to the published submodule heads
Aug 2, 2026
60b346f
Merge origin/0.12.0-dev into the convergence
Aug 2, 2026
6222d98
fix(setup): make a fresh clone bootstrap without manual git steps
Aug 2, 2026
2d9a698
chore(workspace): regenerate managed root surfaces + resync uv.lock +…
Aug 2, 2026
7d0db47
chore(workspace): converge pyproject fixed point + restore beads rout…
Aug 3, 2026
81cc760
chore(codegen): converge the last drifted managed surfaces to the gen…
Aug 3, 2026
f4188df
chore(workspace): advance gitlinks to the converged pyproject fixed p…
Aug 3, 2026
c1b63ae
docs(governance): make the fresh-clone bootstrap contract a blocking …
Aug 3, 2026
aad6835
chore(codegen): regenerate .gitignore to track .beads/metadata.json
Aug 3, 2026
4f93193
chore(codegen): scope the metadata.json exception to workspace-root
Aug 3, 2026
ff8a30f
fix(codegen): restore the generator fixed point for [MANAGED] markers
Aug 3, 2026
bb7f501
chore(workspace): advance gitlinks to the pushed ledger-marker and ma…
Aug 3, 2026
976423b
fixes
Aug 3, 2026
8c9c4e9
feat(workspace): integration overlay and follow-superproject member g…
Aug 3, 2026
74600ee
chore(workspace): advance flext-infra gitlink after conform cleanup
Aug 3, 2026
7c02c8a
chore(workspace): point flext-infra at m.Infra model cutover and pin …
Aug 3, 2026
1b7c638
Merge pull request #78 from flext-sh/bugfix/infra-gitlink-pydantic-mo…
marlon-costa-dc Aug 3, 2026
66a3674
chore(markdown): update markdownlint configuration and adjust line le…
Aug 3, 2026
3dd8928
Merge branch 'bugfix/infra-gitlink-pydantic-models' into 0.12.0-dev
Aug 3, 2026
8a22244
chore(workspace): advance flext-infra gitlink to rumdl MD013 alignment
Aug 3, 2026
4ec7dce
chore: advance flext-meltano gitlink after model cutover adopt
Aug 3, 2026
6dced39
chore(workspace): absorb flext-infra and flext-meltano facade cutover…
Aug 3, 2026
3977453
chore: sync markdownlint SSOT and advance flext-infra gitlink
Aug 3, 2026
98d2204
Merge pull request #79 from flext-sh/bugfix/absorb-member-gitlinks-fa…
marlon-costa-dc Aug 3, 2026
4131e85
chore: sync complete markdownlint SSOT and member gitlinks
Aug 3, 2026
69a038c
chore: advance flext-meltano gitlink after singer service adopt
Aug 3, 2026
add30b0
chore: advance member gitlinks after final adopt
Aug 3, 2026
4c3e6fe
chore: advance oracle member gitlinks after settings adopt
Aug 3, 2026
9689631
docs(agents): switch Beads managed block to profile:minimal
Aug 3, 2026
b5b18ca
chore(workspace): advance singer/dbt gitlinks after settings adopt
Aug 3, 2026
c122c67
chore: advance flext-meltano gitlink after skip-test cleanup
Aug 3, 2026
7ddf42f
chore(workspace): advance flext-infra gitlink after apply-guard adopt
Aug 3, 2026
ebd0b13
chore(gitlink): pin infra/cli/meltano/dbt-ldif to 0.12.0-dev tips
Aug 3, 2026
5928ff6
chore(docker): update .dockerignore to include tests fixtures and mod…
Aug 3, 2026
62a090b
chore(gitlink): pin flext-infra to 0.12.0-dev tip
Aug 3, 2026
e1a41e3
chore(gitlink): pin flext-infra after go_version/codegen absorb
Aug 3, 2026
9e439e2
chore(gitlink): bump flext-infra to accepts_apply tip
Aug 3, 2026
528a96a
chore(make): regen root projections for run accepts_apply
Aug 3, 2026
166db69
chore(workspace): absorb CI fixture gitlinks across flext members
Aug 3, 2026
85f7a04
chore(workspace): pin flext-infra gitlink after CI trigger SSOT
Aug 3, 2026
bf14f2e
chore(workspace): pin flext-infra after projected CI sync
Aug 3, 2026
8b5358f
fix(beads): declare mro ledger identity in the workspace SSOT
Aug 3, 2026
bb5a2c0
chore(beads): land regenerated mro ledger projection
Aug 3, 2026
8653011
chore(ci): land regenerated ci.yml trigger projection
Aug 3, 2026
6dbb770
chore(workspace): absorb CI trigger expansion gitlinks across members
Aug 3, 2026
191bfc2
chore(workspace): pin members after leftover ci/docker cleanup
Aug 3, 2026
9ed9229
chore(workspace): pin flext-infra after conform MCP/CRG docs
Aug 3, 2026
5f3f5d1
chore(deps): bump jdx/mise-action from 4.1.0 to 4.2.3 (#76)
dependabot[bot] Aug 3, 2026
45fa0a7
chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (#75)
dependabot[bot] Aug 3, 2026
d32130f
chore(deps-dev): bump code-review-graph from 2.3.6 to 2.3.7 (#77)
dependabot[bot] Aug 3, 2026
a7fed70
chore(workspace): pin flext-infra private-CI submodule auth cutover
Aug 3, 2026
b5ce3d8
chore(workspace): pin flext-infra submodule fetch-when-pin-present
Aug 3, 2026
df32342
audit: bugfix/mro-bju6 -> 0.12.0-dev (#64)
marlon-costa-dc Aug 3, 2026
c396a41
wip: automated snapshot before gitflow audit (2026-08-02) (#74)
marlon-costa-dc Aug 3, 2026
579bd46
chore(ci): render staged validation hooks
Aug 3, 2026
aefd659
Merge pull request #81 from flext-sh/bugfix/mro-00go-precommit-ci-root
marlon-costa-dc Aug 3, 2026
626b331
Merge branch 'main' into 0.12.0-dev
marlon-costa-dc Aug 3, 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
17 changes: 11 additions & 6 deletions .agents/commands/flext-law.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
# FLEXT session router

Read `.agents/skills/flext-context-routing/SKILL.md` first. It is the sole
always-loaded FLEXT skill and selects the applicable entries from
`surfaces.on_demand` in `.agents/provider.toml`.
Compose these exact authorities in order:

Load `.agents/skills/flext-law/SKILL.md` for FLEXT-law work and
`.agents/skills/flext-inviolable-rules/SKILL.md` for governance. Do not eagerly
load undeclared local surfaces.
1. `~/.agents/skills/inviolable-rules/SKILL.md`
2. `~/.agents/skills/make-check/SKILL.md`
3. `.agents/skills/flext-context-routing/SKILL.md`
4. `.agents/skills/flext-law/SKILL.md`
5. `~/.agents/skills/verification-loop/SKILL.md` at each completion boundary

The three global skills own generic execution governance. FLEXT owns the local
`flext-law` domain delta. AI Hub may distribute these surfaces but may not
redefine either owner. Fail closed when an exact path is missing; never resolve
an identically named skill from another catalog or branch.
5 changes: 4 additions & 1 deletion .agents/prompts/continuation-monopoly.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ Read, in order:
2. `/home/marlonsc/.agents/UNIVERSAL_CORE.md`
3. `/home/marlonsc/flext/AGENTS.md`
4. `/home/marlonsc/flext/.agents/skills/flext-law/SKILL.md`
5. `/home/marlonsc/flext/.agents/skills/flext-inviolable-rules/SKILL.md`
5. `/home/marlonsc/.agents/skills/inviolable-rules/SKILL.md`
6. `/home/marlonsc/.agents/skills/make-check/SKILL.md`
7. `/home/marlonsc/.agents/skills/verification-loop/SKILL.md`
<!-- Why: cutover to exact global generic skills after the local flext-inviolable-rules removal (mro-1o6t.1.1) -->

## Operating contract

Expand Down
13 changes: 4 additions & 9 deletions .agents/provider.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,11 @@ source_project_id = "flext-sh/flext"
marker_distribution = "flext-core"
router_skill = "flext-context-routing"
session_command = ".agents/commands/flext-law.md"
codemod_provider = "sgconfig.yml"
codemod_provider = "flext-infra/src/flext_infra/codemod/sgconfig.yml"
marketplaces_key = "extraKnownMarketplaces"
enabled_plugins_key = "enabledPlugins"
required_surfaces = ["sgconfig.yml"]
required_surfaces = ["flext-infra/src/flext_infra/codemod/sgconfig.yml"]

[surfaces]
always = [
".agents/skills/flext-context-routing/SKILL.md",
]
on_demand = [
".agents/skills/flext-law/SKILL.md",
".agents/skills/flext-inviolable-rules/SKILL.md",
]
always = [".agents/skills/flext-context-routing/SKILL.md"]
on_demand = [".agents/skills/flext-law/SKILL.md"]
37 changes: 22 additions & 15 deletions .agents/skills/flext-context-routing/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,32 @@
---
name: flext-context-routing
description: Route FLEXT Python repository and workspace tasks after flext-core dependency detection. Use for FLEXT workspace detection, local skill selection, MRO facade work, governance, imports, or shared test fixtures.
description: Route FLEXT repositories through global execution skills and the branch-matched local flext-law domain delta after flext-core dependency detection.
---

# FLEXT Context Routing

Read this skill first. It is the sole always-loaded local FLEXT surface and
selects only the on-demand law needed for the current task.
This is the sole always-loaded local FLEXT surface. It selects the exact
branch-matched FLEXT law without duplicating universal execution governance.

## Routing
## Required composition

- Load `flext-law` for FLEXT implementation, review, migration, refactoring,
validation, generated surfaces, or architecture work.
- Load `flext-inviolable-rules` for governance, Beads coordination, shared
worktree safety, completion gates, evidence, handoff, commit, or closure.
- Load both when FLEXT-law work also changes repository state.
1. Read `~/.agents/skills/inviolable-rules/SKILL.md`.
2. Before build, generation, docs, checks, tests, or diagnosis, read
`~/.agents/skills/make-check/SKILL.md`.
3. For every FLEXT task, read the exact local
`.agents/skills/flext-law/SKILL.md`.
4. At every completion boundary, read
`~/.agents/skills/verification-loop/SKILL.md`.

## Workspace Rules
Fail closed if a required file is absent. Never resolve `flext-law` by an
unqualified catalog name, from `main`, or from another checkout.

- Preserve facade direction `c -> t -> p -> m -> u`.
- Reverse imports are declaration-only and must remain under `TYPE_CHECKING`.
- `flext-tests` owns generic fixtures; do not create package-local duplicates.
- Do not load a local skill that is absent from `surfaces.on_demand` in
`.agents/provider.toml`.
## Detection and scope

- Activate when the workspace provider marker or dependency graph contains
`flext-core`.
- In workspace mode, use the active workspace root and its checked-out law.
- In standalone mode, use the FLEXT root law pinned to the same branch or
release; never fall back to `main`.
- Load only local surfaces declared in `.agents/provider.toml`. Global skills
remain owned by `~/.agents` and are not copied into the local provider.
96 changes: 0 additions & 96 deletions .agents/skills/flext-inviolable-rules/SKILL.md

This file was deleted.

136 changes: 49 additions & 87 deletions .agents/skills/flext-law/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,102 +1,64 @@
---
name: flext-law
description: Apply the mandatory FLEXT engineering law for every implementation, review, migration, refactor, validation, or instruction-surface change.
description: Apply the FLEXT-only architecture, workspace, generation, import, and fleet delta over canonical global execution governance.
---

# FLEXT Law

## Authority and scope
## Composition

1. Read root `AGENTS.md` before touching FLEXT files.
2. Treat the live Bead, validated configuration, public contract, and current
worktree as authority. Archives, backups, prior plans, and `0.20.0-dev` are
evidence only unless current project law explicitly adopts them.
3. Claim the owning Bead before mutation. Preserve concurrent work and fix
forward only: never reset, restore, clean, stash, rebase, or normalize
shared work.
4. Change one canonical owner, update its consumers in the same cycle, and
remove superseded paths. Do not add shims, aliases, fallbacks, suppression,
or old-plus-new coexistence.
This repository is the sole owner of the skill named `flext-law`. AI Hub
projects it but does not author it. Generic conduct, lane safety, evidence,
Make-command selection, and completion gates remain owned by:

## Engineering law
- `~/.agents/skills/inviolable-rules/SKILL.md`
- `~/.agents/skills/make-check/SKILL.md`
- `~/.agents/skills/verification-loop/SKILL.md`

- Follow Python 3.13, Clean Architecture, MRO composition, dependency
direction, typed public contracts, Pydantic v2, SSOT, YAGNI, DRY, SOLID, and
dependency injection as defined by root `AGENTS.md`.
- Declarations are data; behavior belongs in focused utilities, services,
facades, bases, or CLI layers.
- Generated files and deployed projections are outputs, never source owners.
Change their canonical generator/configuration and regenerate through the
root Make surface.
- Lint, type, and tooling exception lists (ruff `per-file-ignores`, mypy
`disabled-error-codes`, and equivalents) are code-generated from the
flext-infra codegen SSOT (`flext-infra/config/tooling.yaml`), never
hand-added to a consumer `pyproject.toml`. A required exception that the
SSOT lacks is a change to that SSOT plus a regenerate, not a local edit.
- Never silence a lint, type error, or gate to make it pass: no `noqa`,
`type: ignore`, per-file-ignore, or config carve-out added by an agent on
its own authority. Fix the flagged code at its canonical owner. If a
finding is a genuine false positive, stop and get explicit operator
approval before adding any suppression, then encode it in the codegen SSOT.
- Tests validate public behavior. Use existing fixture topology and imports;
do not create parallel test or configuration paths.
- **P0 — Tests validate config/settings changes by construction.** Tests
validate config/settings CONTRACTS, never frozen values: any expected value
that config owns (versions, verbs, paths, URLs, profiles, defaults) is read
from the same SSOT production reads (codegen.yaml/tooling.yaml/models) or
proven via generator round-trip. A test that breaks on a legitimate
config/settings change is a test defect; fix the test, never freeze the
configuration. Golden files pin STRUCTURE only and are regenerated via the
canonical make verb. This rule applies to all test tiers, markdown examples,
and docstring snippets validated by the pytest plugin (operator law
2026-07-24, cosmos-main-hr9e).
Read those skills and root `AGENTS.md`; this file adds only FLEXT domain law.

## Automated adjustments and synchronization
## Architecture and imports

- Any automated adjustment — sync, codegen round-trip, auto-fix, or upstream
merge — is a code change and must pass the same gates as a manual change.
- Before claiming an automated adjustment is done, run the affected root-Make
gates (`make check` and `make test` for the touched projects) and record the
exact command, exit code, and decisive output in the owning Bead.
- Automated adjustments must be atomic within the lane: one coherent commit or
an explicit pathspec-bound set of commits, never open-ended `fixes` commits
that accumulate unrelated changes.
- Before merging the lane into the original branch (e.g. `0.12.0-dev`), run a
pre-merge validation of the whole lane against the current target: `make
check` and `make test` for every affected project. Do not merge if any gate
is red; fix forward inside the lane and re-validate.
- A merge from upstream/external into the lane must also be validated in the
lane context before it is considered absorbed.
- Dependency direction is `flext-core <- consumers`. `flext-infra` owns build,
conform, codegen, and policy; it is never a runtime dependency.
- Facades compose in strict order `c -> t -> p -> m -> u`, with operational
`r/e/x/h/d/s`. Reverse imports are `TYPE_CHECKING`-only.
- Each package has one thin `api.py` MRO facade and one simple generated root
`__init__.py` with automatic lazy public exports. Custom import routers,
eager alternatives, compatibility aliases, and duplicate facades are
forbidden.
- Service exposure follows the canonical short alias: `base.py` imports `s`
from `flext_core`, the package root lazily re-exports `s`, and consumers use
`from <namespace> import s`. Never rename it to `core_s` or substitute an
alternative service-base import.
- Declaration layers are pure data. Behavior belongs in utilities, services,
bases, facades, or CLI layers. Owned data crosses boundaries through typed
Pydantic v2 models and project `t.*`/`p.*` contracts.

## Green checkpoint protocol
## Sources, generation, and commands

- Work in short, complete checkpoints. After every state-changing stage, update
the Bead with current status, orientation, owned paths, remaining scope, and
exact evidence; Beads stays continuous execution truth, not an end-of-task
summary.
- Resolve ordinary uncertainty promptly from current evidence. Do not accumulate
speculative hypotheses or validated local WIP while a checkpoint can be
completed and landed.
- A green checkpoint requires every applicable canonical root-Make gate to pass,
including zero lint errors. A red, partial, or incompletely evidenced state is
never committed or pushed as a checkpoint.
- Once a checkpoint is green and push authority exists, commit only explicit
owned paths and immediately fast-forward push the current worker branch. Do
not rebase, force-push, merge, or promote the main branch; reviewed promotion
remains orchestrator work.
- While work is active, send the orchestrator a concise progress heartbeat at
least every five minutes without pausing execution. Include the current stage,
latest evidence, next action, and any changed risk or blocker.
- At every critical decision point, stop before acting, record the pending
decision, options, and consequences in the Bead, and ask the operator one
precise confirmation question. Critical decisions include destructive or
irreversible actions, competing public-contract or architecture outcomes,
security or privacy choices, production/release/main promotion, authority
conflicts, and material scope or acceptance changes. Never infer critical
intent; evidence-resolve ordinary uncertainty without unnecessary interruption.
- `config/*.yaml`, typed settings, schemas, and generator policy are the SSOT.
Change the owner, regenerate every projection, and remove the superseded
implementation in the same cutover.
- Generated facets, root imports, managed `pyproject.toml` sections, Make
surfaces, CI, and documentation are never hand-edited at consumers. Their
canonical owner is `flext-infra` plus explicit `config/` overlays.
- Run setup, conform, codegen, docs, checks, tests, WAZA, and publication only
through the active workspace root Make dispatcher. A missing or broken verb
is repaired generically in `flext-infra`, then reused by workspace and
standalone projects; it is never bypassed.
- `flext-tests` owns reusable fixtures and behavior helpers. Packages consume
them through public facades rather than creating local copies.

## Completion discipline
## Fleet boundary

Use `.agents/skills/flext-inviolable-rules/SKILL.md` for every task closure.
No task succeeds while the affected environment is broken, a required gate is
failing, or the work is left as unowned WIP.
- First-party FLEXT members and standalone repositories consume the same
branch-matched law, Make control plane, and generated conventions.
- Third-party forks and content-only repositories are not FLEXT members: do
not mutate, lint, generate, or manage them. Required interaction is declared
as typed metadata or a bounded `config/` overlay.
- Workspace and standalone CI are generated once by `flext-infra conform`.
Exceptions are configuration overlays, never duplicate pipelines or custom
implementations.
- Historical branches, archives, generated outputs, and other worktrees are
evidence only. The active branch-matched canonical sources define behavior.
Loading
Loading