Split meta architecture contracts
This commit is contained in:
70
tests/Architecture/AgentSystemFileContractTest.php
Normal file
70
tests/Architecture/AgentSystemFileContractTest.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace MintyPHP\Tests\Architecture;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class AgentSystemFileContractTest extends TestCase
|
||||
{
|
||||
use ProjectFileAssertionSupport;
|
||||
|
||||
public function testAgentSystemJsonFilesAreValidJson(): void
|
||||
{
|
||||
$jsonFiles = [
|
||||
'.agents/checks/guard-catalog.json',
|
||||
'.agents/checks/quality-gates.json',
|
||||
'.agents/contracts/analyst.schema.json',
|
||||
'.agents/contracts/planner.schema.json',
|
||||
'.agents/contracts/executor.schema.json',
|
||||
'.agents/contracts/reviewer-code.schema.json',
|
||||
'.agents/contracts/reviewer-security.schema.json',
|
||||
'.agents/contracts/reviewer-acceptance.schema.json',
|
||||
'.agents/contracts/finalizer.schema.json',
|
||||
'.agents/templates/analysis.template.json',
|
||||
'.agents/templates/plan.template.json',
|
||||
'.agents/templates/execution-report.template.json',
|
||||
'.agents/templates/review-code.template.json',
|
||||
'.agents/templates/review-security.template.json',
|
||||
'.agents/templates/review-acceptance.template.json',
|
||||
'.agents/templates/finalize.template.json',
|
||||
'.agents/contracts/module-manifest.schema.json',
|
||||
];
|
||||
|
||||
foreach ($jsonFiles as $file) {
|
||||
$decoded = json_decode($this->readProjectFile($file), true);
|
||||
$this->assertIsArray($decoded, 'Invalid JSON: ' . $file);
|
||||
}
|
||||
}
|
||||
|
||||
public function testAllSevenRolePromptsExist(): void
|
||||
{
|
||||
$roles = ['analyst', 'planner', 'executor', 'reviewer-code', 'reviewer-security', 'reviewer-acceptance', 'finalizer'];
|
||||
|
||||
foreach ($roles as $role) {
|
||||
$this->readProjectFile('.agents/prompts/' . $role . '.md');
|
||||
}
|
||||
}
|
||||
|
||||
public function testAllSevenContractsExist(): void
|
||||
{
|
||||
$contracts = ['analyst', 'planner', 'executor', 'reviewer-code', 'reviewer-security', 'reviewer-acceptance', 'finalizer'];
|
||||
|
||||
foreach ($contracts as $contract) {
|
||||
$decoded = json_decode($this->readProjectFile('.agents/contracts/' . $contract . '.schema.json'), true);
|
||||
$this->assertIsArray($decoded, 'Invalid JSON schema: ' . $contract);
|
||||
}
|
||||
}
|
||||
|
||||
public function testAllSevenTemplatesExist(): void
|
||||
{
|
||||
$templates = [
|
||||
'analysis', 'plan', 'execution-report',
|
||||
'review-code', 'review-security', 'review-acceptance', 'finalize',
|
||||
];
|
||||
|
||||
foreach ($templates as $template) {
|
||||
$decoded = json_decode($this->readProjectFile('.agents/templates/' . $template . '.template.json'), true);
|
||||
$this->assertIsArray($decoded, 'Invalid JSON template: ' . $template);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user