Skip to content

Commit 79a343f

Browse files
author
TNFR AI Agent
committed
Align project entry points and agent guidance with the shared engine
1 parent dc64b06 commit 79a343f

10 files changed

Lines changed: 200 additions & 108 deletions

‎.github/agents/my-agent.md‎

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,9 @@ See [regime comparisons](https://github.com/fermga/TNFR-Python-Engine/blob/main/
201201

202202
The registry is the semantic interface for named transformations. Catalog
203203
completeness and a uniquely derived autonomous selection law remain open.
204-
Lowercase English names are execution tokens, title-case names are display/class
205-
names, and glyphs are internal symbols.
204+
Read executable tokens from `TNFR.operators()`'s `token` field; `name` is the
205+
display name and `glyph` the internal symbol. Do not infer a token by lowercasing
206+
a display/class name. The catalog describes contracts, not live-state admission.
206207

207208
| Operator | Glyph | Primary channel | Direct contract or execution boundary |
208209
| --- | --- | --- | --- |
@@ -312,12 +313,47 @@ changes against the affected contract and evidence: destabilization, negative
312313
results or corrected diagnostics need not increase C. Never hide a contradiction
313314
by relabeling telemetry or adjusting a reserved response after evaluation.
314315

316+
### Shared public execution and observations
317+
318+
For a declared finite operator study, use `StudySpec` and `run_study` from
319+
`tnfr.sdk`. The CLI `tnfr network` (also `python -m tnfr network`) delegates to
320+
that same owner in [sdk/study.py](https://github.com/fermga/TNFR-Python-Engine/blob/main/src/tnfr/sdk/study.py).
321+
Extend the shared model before adding separate CLI validation, simulation or
322+
serialization logic. `TNFR.operators()` and `list_sequences()` expose existing
323+
registries; do not maintain a second operator catalog or word table.
324+
325+
`StudySpec.cycles` and this CLI's `--steps`/`--cycles` count complete requested
326+
operator words, not seconds. The report records the requested word and observed
327+
endpoints, not every realized per-node glyph; inherited grammar policy and live
328+
preconditions remain active. The supplied zero-form baseline is initialization,
329+
not spontaneous substrate creation. The study runner sets both the topology
330+
seed and graph `RANDOM_SEED`; direct `TNFR.create(..., seed=...)` sets only the
331+
topology seed. Other engine configuration is inherited, so retain relevant
332+
configuration and runtime provenance when comparing runs.
333+
334+
Use `diagnose_network(network)` for detached stored-state observations. It does
335+
not refresh pressure, evolve the graph or invent missing temporal evidence.
336+
Preserve independent field availability, per-node undefined curvature and xi
337+
estimator provenance. Its nodal product is a model-rate read-out, not a measured
338+
derivative or permission to execute Mutation. Diagnostic values do not select
339+
the next operator in the shared study runner.
340+
341+
`StudySpec.from_dict` validates a construction recipe and rejects unknown keys.
342+
`StudyResult.to_dict()` returns detached report data; the shared `export_to_json`
343+
writer saves it. Neither a recipe nor this scalar state/support projection is
344+
a complete resumable checkpoint. `import_from_json` reads data without restoring
345+
callbacks, histories or a live graph. Usage and schema details belong to the
346+
[CLI and SDK guide](https://github.com/fermga/TNFR-Python-Engine/blob/main/docs/CLI_AND_SDK.md).
347+
315348
## 10. Development workflow
316349

317350
Inspect repository instructions, local changes and relevant source/tests before
318351
editing. Preserve unrelated work. Keep definitions centralized and APIs stable
319352
or explicitly migrated. Documentation should identify current owners rather
320-
than duplicate derivations and delivery histories.
353+
than duplicate derivations and delivery histories. The documentation map owns
354+
navigation and responsibilities; the example and benchmark indexes identify
355+
maintained entry points and their scope. Historical paths or retired notebooks
356+
are evidence to inspect, not current instructions to restore automatically.
321357

322358
### Commit / PR templates
323359

@@ -332,6 +368,17 @@ postconditions, unsupported domains, numerical/representation boundaries and
332368
provenance where relevant. Do not assume RA always increases synchronization,
333369
OZ always produces a bifurcation, or every valid sequence is monotone. A test
334370
suite checks finite cases and implementations, not unrestricted theorems.
371+
Exercise the actual shared owner with an independent expected result or a
372+
meaningful boundary; assigning fixture literals and asserting those same values
373+
does not test nodal dynamics. Reuse an expensive producer's report through a
374+
module fixture while retaining distinct assertions. Test CLI/report wiring
375+
separately when it needs no new scientific execution; preserve independently
376+
necessary cold-import, atomicity and provenance checks. See the
377+
[core contract map](https://github.com/fermga/TNFR-Python-Engine/blob/main/tests/core_physics/README.md)
378+
for the tests that retain the behavior of retired introductory illustrations.
379+
Default test selection, dependencies and parallel scheduling have their owners
380+
in test configuration and the workflow guide; do not duplicate those settings
381+
here or regenerate historical research artifacts for an unrelated change.
335382
See [TESTING.md](https://github.com/fermga/TNFR-Python-Engine/blob/main/TESTING.md).
336383

337384
## 11. Troubleshooting
@@ -365,20 +412,24 @@ the plan rather than appending milestones here.
365412

366413
| Owner | Responsibility |
367414
| --- | --- |
368-
| `dynamics/` | Pressure realization, phase/capacity evolution and shared integration |
415+
| `dynamics/` | Configured pressure and phase/capacity maps; shared integration |
369416
| `operators/` | Named transformations, grammar, stages and causal execution |
370417
| `physics/` | Fields, model theorems, reductions and scope-aware observations |
371418
| `metrics/` | Shared coherence, sense and diagnostic kernels |
372419
| `config/`, `constants/` | Declared defaults, policy calibration and classifications |
373420
| `mathematics/` | Numerical backends, exact helpers and arithmetic constructions |
374-
| `sdk/` | Public network interfaces |
421+
| `sdk/` | Public networks, validated study recipes and detached diagnostic reports |
422+
| `cli/` | Command adapters; study execution and catalogs reuse SDK owners |
375423
| `research/` and domain packages | Scoped experiments and analysis |
376424

377425
See [ARCHITECTURE.md](https://github.com/fermga/TNFR-Python-Engine/blob/main/ARCHITECTURE.md),
378426
[docs](https://github.com/fermga/TNFR-Python-Engine/blob/main/docs/README.md) and
379427
[examples](https://github.com/fermga/TNFR-Python-Engine/blob/main/examples/README.md).
380428
Historical examples can illustrate an auxiliary model without proving physical
381429
emergence; consult the current theoretical owner before reusing a conclusion.
430+
Choose the current entry point from the example index rather than assuming an
431+
old numbered filename still exists. Examples and benchmarks are not an
432+
instruction to execute every file or reopen parked research branches.
382433

383434
## 14. Philosophy & excellence standards
384435

‎AGENTS.md‎

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,9 @@ See [regime comparisons](https://github.com/fermga/TNFR-Python-Engine/blob/main/
201201

202202
The registry is the semantic interface for named transformations. Catalog
203203
completeness and a uniquely derived autonomous selection law remain open.
204-
Lowercase English names are execution tokens, title-case names are display/class
205-
names, and glyphs are internal symbols.
204+
Read executable tokens from `TNFR.operators()`'s `token` field; `name` is the
205+
display name and `glyph` the internal symbol. Do not infer a token by lowercasing
206+
a display/class name. The catalog describes contracts, not live-state admission.
206207

207208
| Operator | Glyph | Primary channel | Direct contract or execution boundary |
208209
| --- | --- | --- | --- |
@@ -312,12 +313,47 @@ changes against the affected contract and evidence: destabilization, negative
312313
results or corrected diagnostics need not increase C. Never hide a contradiction
313314
by relabeling telemetry or adjusting a reserved response after evaluation.
314315

316+
### Shared public execution and observations
317+
318+
For a declared finite operator study, use `StudySpec` and `run_study` from
319+
`tnfr.sdk`. The CLI `tnfr network` (also `python -m tnfr network`) delegates to
320+
that same owner in [sdk/study.py](https://github.com/fermga/TNFR-Python-Engine/blob/main/src/tnfr/sdk/study.py).
321+
Extend the shared model before adding separate CLI validation, simulation or
322+
serialization logic. `TNFR.operators()` and `list_sequences()` expose existing
323+
registries; do not maintain a second operator catalog or word table.
324+
325+
`StudySpec.cycles` and this CLI's `--steps`/`--cycles` count complete requested
326+
operator words, not seconds. The report records the requested word and observed
327+
endpoints, not every realized per-node glyph; inherited grammar policy and live
328+
preconditions remain active. The supplied zero-form baseline is initialization,
329+
not spontaneous substrate creation. The study runner sets both the topology
330+
seed and graph `RANDOM_SEED`; direct `TNFR.create(..., seed=...)` sets only the
331+
topology seed. Other engine configuration is inherited, so retain relevant
332+
configuration and runtime provenance when comparing runs.
333+
334+
Use `diagnose_network(network)` for detached stored-state observations. It does
335+
not refresh pressure, evolve the graph or invent missing temporal evidence.
336+
Preserve independent field availability, per-node undefined curvature and xi
337+
estimator provenance. Its nodal product is a model-rate read-out, not a measured
338+
derivative or permission to execute Mutation. Diagnostic values do not select
339+
the next operator in the shared study runner.
340+
341+
`StudySpec.from_dict` validates a construction recipe and rejects unknown keys.
342+
`StudyResult.to_dict()` returns detached report data; the shared `export_to_json`
343+
writer saves it. Neither a recipe nor this scalar state/support projection is
344+
a complete resumable checkpoint. `import_from_json` reads data without restoring
345+
callbacks, histories or a live graph. Usage and schema details belong to the
346+
[CLI and SDK guide](https://github.com/fermga/TNFR-Python-Engine/blob/main/docs/CLI_AND_SDK.md).
347+
315348
## 10. Development workflow
316349

317350
Inspect repository instructions, local changes and relevant source/tests before
318351
editing. Preserve unrelated work. Keep definitions centralized and APIs stable
319352
or explicitly migrated. Documentation should identify current owners rather
320-
than duplicate derivations and delivery histories.
353+
than duplicate derivations and delivery histories. The documentation map owns
354+
navigation and responsibilities; the example and benchmark indexes identify
355+
maintained entry points and their scope. Historical paths or retired notebooks
356+
are evidence to inspect, not current instructions to restore automatically.
321357

322358
### Commit / PR templates
323359

@@ -332,6 +368,17 @@ postconditions, unsupported domains, numerical/representation boundaries and
332368
provenance where relevant. Do not assume RA always increases synchronization,
333369
OZ always produces a bifurcation, or every valid sequence is monotone. A test
334370
suite checks finite cases and implementations, not unrestricted theorems.
371+
Exercise the actual shared owner with an independent expected result or a
372+
meaningful boundary; assigning fixture literals and asserting those same values
373+
does not test nodal dynamics. Reuse an expensive producer's report through a
374+
module fixture while retaining distinct assertions. Test CLI/report wiring
375+
separately when it needs no new scientific execution; preserve independently
376+
necessary cold-import, atomicity and provenance checks. See the
377+
[core contract map](https://github.com/fermga/TNFR-Python-Engine/blob/main/tests/core_physics/README.md)
378+
for the tests that retain the behavior of retired introductory illustrations.
379+
Default test selection, dependencies and parallel scheduling have their owners
380+
in test configuration and the workflow guide; do not duplicate those settings
381+
here or regenerate historical research artifacts for an unrelated change.
335382
See [TESTING.md](https://github.com/fermga/TNFR-Python-Engine/blob/main/TESTING.md).
336383

337384
## 11. Troubleshooting
@@ -365,20 +412,24 @@ the plan rather than appending milestones here.
365412

366413
| Owner | Responsibility |
367414
| --- | --- |
368-
| `dynamics/` | Pressure realization, phase/capacity evolution and shared integration |
415+
| `dynamics/` | Configured pressure and phase/capacity maps; shared integration |
369416
| `operators/` | Named transformations, grammar, stages and causal execution |
370417
| `physics/` | Fields, model theorems, reductions and scope-aware observations |
371418
| `metrics/` | Shared coherence, sense and diagnostic kernels |
372419
| `config/`, `constants/` | Declared defaults, policy calibration and classifications |
373420
| `mathematics/` | Numerical backends, exact helpers and arithmetic constructions |
374-
| `sdk/` | Public network interfaces |
421+
| `sdk/` | Public networks, validated study recipes and detached diagnostic reports |
422+
| `cli/` | Command adapters; study execution and catalogs reuse SDK owners |
375423
| `research/` and domain packages | Scoped experiments and analysis |
376424

377425
See [ARCHITECTURE.md](https://github.com/fermga/TNFR-Python-Engine/blob/main/ARCHITECTURE.md),
378426
[docs](https://github.com/fermga/TNFR-Python-Engine/blob/main/docs/README.md) and
379427
[examples](https://github.com/fermga/TNFR-Python-Engine/blob/main/examples/README.md).
380428
Historical examples can illustrate an auxiliary model without proving physical
381429
emergence; consult the current theoretical owner before reusing a conclusion.
430+
Choose the current entry point from the example index rather than assuming an
431+
old numbered filename still exists. Examples and benchmarks are not an
432+
instruction to execute every file or reopen parked research branches.
382433

383434
## 14. Philosophy & excellence standards
384435

0 commit comments

Comments
 (0)