mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-11-06 04:42:24 +00:00
Ground fleet ownership in bounded observed repository files
This commit is contained in:
1 parent
03fcbdd23f
commit
fb39cf04e3
7 files changed
+119
-1
No files matched your search
+1
-1
@@ -404,7 +404,7 @@ export const CANDIDATE_ACCEPTANCE_EVIDENCE = Object.freeze({
|
||||
'init-analyze': ['SCN-init-read-only'],
|
||||
'spec-aware-design': ['SCN-spec-fleet-design', 'SCN-cli-spec-design'],
|
||||
'ai-fleet-bootstrap': ['SCN-ai-fleet-bootstrap', 'SCN-bootstrap-specialist-only'],
|
||||
'ai-fleet-planning': ['SCN-ai-fleet-planning', 'SCN-architect-organization-assessment', 'SCN-bootstrap-primary-ownership'],
|
||||
'ai-fleet-planning': ['SCN-ai-fleet-planning', 'SCN-architect-organization-assessment', 'SCN-bootstrap-primary-ownership', 'SCN-architect-file-ownership'],
|
||||
'fleet-evolution': ['SCN-fleet-evolution', 'SCN-cli-fleet-evolution'],
|
||||
'fleet-boundary-evolution': ['SCN-fleet-boundary-evolution'],
|
||||
'cli-lifecycle-surface': ['SCN-cli-lifecycle-surface'],
|
||||
|
||||
@@ -61,6 +61,7 @@ function providerResponse(provider, result) {
|
||||
|
||||
function allowedEvidence(brief) {
|
||||
const values = new Set();
|
||||
for (const path of brief.reconnaissance.inventory?.ownershipPaths ?? []) values.add(path);
|
||||
for (const component of brief.reconnaissance.architecture.components ?? []) {
|
||||
component.evidence.forEach((entry) => values.add(entry));
|
||||
}
|
||||
@@ -74,6 +75,7 @@ function allowedEvidence(brief) {
|
||||
|
||||
function allowedOwnedPaths(brief) {
|
||||
const values = new Set();
|
||||
for (const path of brief.reconnaissance.inventory?.ownershipPaths ?? []) values.add(path);
|
||||
for (const component of brief.reconnaissance.architecture.components ?? []) {
|
||||
component.paths.forEach((entry) => values.add(entry));
|
||||
}
|
||||
@@ -164,6 +166,10 @@ export function createArchitectRunPlan({ brief, provider, model, maxBudgetUsd }
|
||||
export function validateArchitectProposal({ brief, proposal } = {}) {
|
||||
const problems = [];
|
||||
const findings = [];
|
||||
if (brief?.reconnaissance?.inventory?.ownershipPathsTruncated) {
|
||||
findings.push({ severity: 'review', code: 'OWNERSHIP_EVIDENCE_TRUNCATED',
|
||||
message: 'Exact file ownership evidence is bounded; component coverage does not prove whole-repository ownership.' });
|
||||
}
|
||||
if (brief?.schema !== 'torch.dev/fleet-design-brief/v1alpha1') problems.push('unsupported design brief schema');
|
||||
if (proposal?.schema !== 'torch.dev/domain-proposal/v1alpha1') problems.push('unsupported proposal schema');
|
||||
if (proposal?.review?.status !== 'pending' || proposal?.review?.reviewedAt || proposal?.review?.reviewedBy) {
|
||||
|
||||
@@ -77,6 +77,10 @@ export function analyzeRepository(repository, { specifications = [] } = {}) {
|
||||
trackedFileCount: workingTree.trackedFileCount,
|
||||
untrackedFileCount: workingTree.untrackedFileCount,
|
||||
analyzedFileCount: files.length,
|
||||
// Exact observed files supplement source-component globs for manifests,
|
||||
// documentation, schemas and other non-code deliverables. Keep briefs bounded.
|
||||
ownershipPaths: files.slice(0, 1000),
|
||||
ownershipPathsTruncated: files.length > 1000,
|
||||
languages,
|
||||
manifests,
|
||||
topLevelDirectories: [...topLevel].sort(),
|
||||
|
||||
Reference in new issue
Block a user