modify docu

This commit is contained in:
NINI
2026-06-12 01:15:14 +09:00
parent 742f311be1
commit 066b352fcb
62 changed files with 458 additions and 389 deletions
+66 -14
View File
@@ -13,6 +13,48 @@ COMMON_SECTIONS = (
"## Handoff",
)
ACTIVE_CONTRACT_FILES = (
ROOT / "AGENTS.md",
ROOT / "docs" / "ProjectInitialPlanNote.md",
ROOT / "docs" / "PRD.md",
ROOT / "docs" / "ARCHITECTURE.md",
ROOT / "docs" / "ADR.md",
ROOT / "docs" / "SOLVER_AGENT_DESIGN.md",
ROOT / "docs" / "SOLVER_SKILL_DESIGN.md",
ROOT / "docs" / "reference-models" / "README.md",
ROOT / "docs" / "reference-verifications" / "README.md",
ROOT / "docs" / "io-definitions" / "README.md",
ROOT / "docs" / "implementation-plans" / "README.md",
ROOT / "docs" / "physics-evaluations" / "README.md",
ROOT / "docs" / "requirements" / "README.md",
ROOT / ".codex" / "agents" / "reference-model-agent.toml",
ROOT / ".codex" / "agents" / "reference-verification-agent.toml",
ROOT / ".codex" / "agents" / "io-definition-agent.toml",
ROOT / ".codex" / "agents" / "implementation-planning-agent.toml",
ROOT / ".codex" / "agents" / "implementation-agent.toml",
ROOT / ".codex" / "agents" / "physics-evaluation-agent.toml",
ROOT / ".codex" / "agents" / "release-agent.toml",
ROOT / ".codex" / "agents" / "requirement-agent.toml",
ROOT / ".codex" / "agents" / "coordinator-agent.toml",
ROOT / ".codex" / "skills" / "fesa-reference-models" / "SKILL.md",
ROOT / ".codex" / "skills" / "fesa-reference-comparison" / "SKILL.md",
ROOT / ".codex" / "skills" / "fesa-io-contract" / "SKILL.md",
ROOT / ".codex" / "skills" / "fesa-physics-sanity" / "SKILL.md",
ROOT / ".codex" / "skills" / "fesa-cpp-msvc-tdd" / "SKILL.md",
ROOT / ".codex" / "skills" / "fesa-release-readiness" / "SKILL.md",
ROOT / ".codex" / "skills" / "fesa-requirements-baseline" / "SKILL.md",
)
STALE_REFERENCE_CONTRACT_PHRASES = (
"reference" ".h5",
"stored reference " "HDF5",
"reference " "HDF5 artifact",
"results.h5 and " "reference" ".h5",
"results.h5` and `reference" ".h5",
"derived from reference" ".h5",
"references/" "<feature-id>/<model-id>/",
)
SKILLS = {
"fesa-requirements-baseline": {
@@ -97,7 +139,7 @@ SKILLS = {
"FESA solver",
"Abaqus .inp",
"HDF5",
"CSV view",
"CSV",
"I/O",
),
"body_terms": (
@@ -105,9 +147,9 @@ SKILLS = {
"Abaqus Input Scope",
"Internal Model Contract",
"Output HDF5 Schema",
"Deterministic CSV View Schemas",
"FESA HDF5 to Reference CSV Comparison Schema",
"results.h5",
"csv/displacements.csv",
"reference/<model-id>/",
"*NODE",
"*ELEMENT",
"*MATERIAL",
@@ -122,20 +164,19 @@ SKILLS = {
"FESA",
"reference model",
"Abaqus input",
"artifact",
"CSV",
),
"body_terms": (
"docs/reference-models/<feature-id>-reference-models.md",
"references/<feature-id>/<model-id>/",
"reference/<model-id>/",
"model.inp",
"metadata.json",
"reference.h5",
"csv/displacements.csv",
"csv/reactions.csv",
"csv/element_forces.csv",
"csv/stresses.csv",
"<model-id>_displacements.csv",
"<model-id>_reactions.csv",
"<model-id>_internalforces.csv",
"<model-id>_stresses.csv",
"Coverage Matrix",
"Do not generate reference HDF5 files or deterministic CSV views.",
"Do not generate or modify Abaqus reference CSV files.",
),
},
"fesa-cpp-msvc-tdd": {
@@ -161,7 +202,7 @@ SKILLS = {
"Use when",
"FESA solver",
"HDF5",
"CSV view",
"reference CSV",
"tolerance",
"comparison",
),
@@ -169,8 +210,12 @@ SKILLS = {
"docs/reference-verifications/<feature-id>-reference-verification.md",
"ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT",
"results.h5",
"reference.h5",
"deterministic CSV view",
"Abaqus reference CSV",
"reference/<model-id>/",
"<model-id>_displacements.csv",
"<model-id>_reactions.csv",
"<model-id>_internalforces.csv",
"<model-id>_stresses.csv",
"max absolute error",
"max relative error",
"RMS error",
@@ -287,6 +332,13 @@ class FesaSolverSkillTests(unittest.TestCase):
self.assertIn("default_prompt:", text)
self.assertIn(f"${skill_name}", text)
def test_active_contracts_do_not_require_reference_hdf5(self):
for path in ACTIVE_CONTRACT_FILES:
with self.subTest(path=str(path.relative_to(ROOT))):
text = path.read_text(encoding="utf-8")
for stale_phrase in STALE_REFERENCE_CONTRACT_PHRASES:
self.assertNotIn(stale_phrase, text)
if __name__ == "__main__":
unittest.main()