Files
breadcrumb-the-shire/tests/Architecture/CodexSkillsContractTest.php
2026-03-04 15:56:58 +01:00

59 lines
2.6 KiB
PHP

<?php
namespace MintyPHP\Tests\Architecture;
use PHPUnit\Framework\TestCase;
class CodexSkillsContractTest extends TestCase
{
use ProjectFileAssertionSupport;
public function testCoreGuardrailsSkillAndReferencesExist(): void
{
$skill = $this->readProjectFile('tools/codex-skills/core-guardrails/SKILL.md');
$this->assertStringContainsString('name: core-guardrails', $skill);
$this->assertStringContainsString('MUST', $skill);
$this->assertStringContainsString('MUST NOT', $skill);
$this->assertStringContainsString('Out of Scope', $skill);
$this->readProjectFile('tools/codex-skills/core-guardrails/references/boundaries-core.md');
$this->readProjectFile('tools/codex-skills/core-guardrails/references/boundaries-ui.md');
$this->readProjectFile('tools/codex-skills/core-guardrails/references/quality-gates.md');
$this->readProjectFile('tools/codex-skills/core-guardrails/references/source-map.md');
}
public function testStarterkitPlannerSkillContainsDecisionCompleteTemplateContract(): void
{
$skill = $this->readProjectFile('tools/codex-skills/starterkit-planner/SKILL.md');
$this->assertStringContainsString('name: starterkit-planner', $skill);
$this->assertStringContainsString('Decision-complete Implementierungsplan', $skill);
$this->readProjectFile('tools/codex-skills/starterkit-planner/references/plan-template.md');
$this->readProjectFile('tools/codex-skills/starterkit-planner/references/tradeoff-matrix.md');
}
public function testCodexPromptsDocumentationReferencesBothSkillsAndExtensionScope(): void
{
$prompts = $this->readProjectFile('docs/codex-prompts.md');
$this->assertStringContainsString('core-guardrails', $prompts);
$this->assertStringContainsString('starterkit-planner', $prompts);
$this->assertStringContainsString('Out of Scope: Extensions', $prompts);
}
public function testDocsIndexReferencesCodexPrompts(): void
{
$index = $this->readProjectFile('docs/index.md');
$this->assertStringContainsString('/docs/codex-prompts.md', $index);
}
public function testCodexSkillsSyncScriptSupportsCheckAndApply(): void
{
$script = $this->readProjectFile('bin/codex-skills-sync.sh');
$this->assertStringContainsString('--check', $script);
$this->assertStringContainsString('--apply', $script);
$this->assertStringContainsString('mode="check"', $script);
$this->assertStringContainsString('core-guardrails', $script);
$this->assertStringContainsString('starterkit-planner', $script);
}
}