chore: establish YCode replication baseline and TODO

This commit is contained in:
xiaohan.yuan committed 2026-10-17 02:43:49 +08:00
commit 6dc59f89ba
1118 files changed
+196002

No files matched your search

+23
View File
@@ -0,0 +1,23 @@
/** Static audit of REA-recovered artifacts only. Does not execute the expert or its scripts. */
import fs from 'node:fs'
import path from 'node:path'
import crypto from 'node:crypto'
import assert from 'node:assert/strict'
import {parseDocument} from 'yaml'
const directory='.tmp/rea-project-manager-recovered-20261016'
const evidence=JSON.parse(fs.readFileSync(path.join(directory,'evidence-manifest.json'),'utf8'))
const sha=bytes=>crypto.createHash('sha256').update(bytes).digest('hex')
assert.equal(evidence.rootSha256,'304805c85b87e8266294fb3aaf283d45fc71d7977af064fcb1eed1199e9389e6')
const byPath=new Map(evidence.files.map(file=>[file.path,file]))
function text(relative){const item=byPath.get(relative);if(!item)return null;const bytes=fs.readFileSync(path.join(directory,relative));assert.equal(sha(bytes),item.sha256);assert.equal(bytes.length,item.bytes);return new TextDecoder('utf-8',{fatal:true}).decode(bytes)}
function source(relative){const{path:filename,sha256,evidenceId,retainedExport}=byPath.get(relative);return{path:filename,sha256,evidenceId,retainedExport}}
function frontmatter(value){const match=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/.exec(value);assert.ok(match);const doc=parseDocument(match[1],{uniqueKeys:true,schema:'core'});assert.equal(doc.errors.length,0);return doc.toJS({maxAliasCount:30})}
const pluginPath='.codebuddy-plugin/plugin.json',agentPath='agents/senior-project-manager.md',skillPath='skills/minimax-docx/SKILL.md'
const plugin=JSON.parse(text(pluginPath)),agent=text(agentPath),skill=text(skillPath)
const findings={rootSha256:evidence.rootSha256,metadata:{value:plugin,source:source(pluginPath)},agent:{frontmatter:frontmatter(agent),source:source(agentPath),workspacePrerequisites:['ai/memory-bank/site-setup.md','ai/memory-bank/tasks/[project-slug]-tasklist.md','ai/agents/pm.md','qa-playwright-capture.sh'],sourceBehavior:['Read exact specification; scope matches it','Write 30–60 minute actionable tasks with acceptance criteria','Extract technical stack and reference requirement sections','Word generation/editing routes to bundled minimax-docx']},skill:{frontmatter:frontmatter(skill),source:source(skillPath),pipelines:['A CREATE','B FILL-EDIT','C FORMAT-APPLY (OVERLAY or BASE-REPLACE)'],setup:['bash scripts/setup.sh','powershell scripts/setup.ps1','scripts/env_check.sh'],cli:'dotnet run --project scripts/dotnet/MiniMaxAIDocx.Cli --'},projects:[],scriptFindings:[],coverage:evidence.coverage}
for(const file of evidence.files.filter(file=>/\.(?:csproj|slnx)$/.test(file.path))){const value=text(file.path);findings.projects.push({source:source(file.path),targetFramework:/<TargetFramework>([^<]+)/.exec(value)?.[1],packages:[...value.matchAll(/<PackageReference\s+Include="([^"]+)"\s+Version="([^"]+)"/g)].map(match=>({name:match[1],version:match[2]})),projectReferences:[...value.matchAll(/<ProjectReference\s+Include="([^"]+)"/g)].map(match=>match[1])})}
for(const file of evidence.files.filter(file=>/\.(?:sh|ps1)$/.test(file.path))){const value=text(file.path),lines=value.split(/\r?\n/);findings.scriptFindings.push({source:source(file.path),lines:lines.map((text,index)=>({line:index+1,text})).filter(({text})=>/dotnet|pandoc|soffice|libreoffice|python|pip |pip3|lxml|defused|apt|brew|winget|curl|https?:\/\/|api[_-]?key|token|node|npm|DOTNET_ROOT|PATH|System\.Drawing/i.test(text)).slice(0,90)})}
const cli='skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs',cliBody=text(cli)
if(cliBody)findings.cli={source:source(cli),dispatch:cliBody,runScriptDeclared:/case\s+"run-script"|"run-script"\s*=>/.test(cliBody)}
fs.writeFileSync('.tmp/rea-project-manager-analysis-20261016.json',JSON.stringify(findings,null,2)+'\n')
console.log(JSON.stringify({status:evidence.coverage.pending.length?'PARTIAL':'PASS',auditedFiles:evidence.files.length,projects:findings.projects,scriptCount:findings.scriptFindings.length,report:'.tmp/rea-project-manager-analysis-20261016.json'}))