add agents

This commit is contained in:
김경종
2026-06-02 16:33:25 +09:00
parent dd50f8c093
commit 535a680197
36 changed files with 3837 additions and 3 deletions
@@ -0,0 +1,85 @@
import unittest
from pathlib import Path
try:
import tomllib
except ModuleNotFoundError: # pragma: no cover
import tomli as tomllib
ROOT = Path(__file__).resolve().parents[1]
AGENT_PATH = ROOT / ".codex" / "agents" / "reference-verification-agent.toml"
REFERENCE_VERIFICATIONS_README = ROOT / "docs" / "reference-verifications" / "README.md"
class ReferenceVerificationAgentConfigTests(unittest.TestCase):
def test_reference_verification_agent_toml_has_required_codex_fields(self):
data = tomllib.loads(AGENT_PATH.read_text(encoding="utf-8"))
self.assertEqual(data["name"], "reference-verification-agent")
self.assertIn("stored Abaqus reference CSV artifacts", data["description"])
self.assertEqual(data["sandbox_mode"], "workspace-write")
self.assertEqual(data["model_reasoning_effort"], "high")
self.assertIn("developer_instructions", data)
def test_reference_verification_agent_instructions_enforce_boundaries(self):
instructions = AGENT_PATH.read_text(encoding="utf-8")
for required_text in (
"Do not edit source code.",
"Do not edit tests.",
"Do not edit CMake.",
"Do not run Abaqus, Nastran, or any reference solver.",
"Do not generate reference CSVs.",
"Do not approve release readiness.",
"Do not change tolerance policies.",
):
self.assertIn(required_text, instructions)
def test_reference_verification_agent_instructions_define_artifact_contract(self):
instructions = AGENT_PATH.read_text(encoding="utf-8")
for required_text in (
"displacements.csv",
"reactions.csv",
"element_forces.csv",
"stresses.csv",
"metadata.json",
"references/<feature-id>/<model-id>/",
):
self.assertIn(required_text, instructions)
def test_reference_verification_agent_instructions_define_output_contract(self):
instructions = AGENT_PATH.read_text(encoding="utf-8")
for required_text in (
"Artifact Inventory",
"Comparison Contract",
"Quantity Results",
"Failure Classification",
"Handoff Recommendation",
"No-Change Assertion",
):
self.assertIn(required_text, instructions)
def test_reference_verification_report_guide_defines_template_and_status_values(self):
guide = REFERENCE_VERIFICATIONS_README.read_text(encoding="utf-8")
for required_text in (
"docs/reference-verifications/<feature-id>-reference-verification.md",
"Artifact Inventory",
"Comparison Contract",
"Quantity Results",
"Failure Classification",
"Handoff Recommendation",
"No-Change Assertion",
"pass-for-physics-evaluation",
"needs-correction",
"needs-reference-artifacts",
"needs-upstream-decision",
):
self.assertIn(required_text, guide)
if __name__ == "__main__":
unittest.main()