mirror of
https://github.com/anthropics/claude-plugins-official.git
synced 2026-08-09 12:53:28 +00:00
code-modernization: COCOMO is a complexity index, never a modernization timeline
COCOMO's constants encode human-team productivity; presenting its person-months as how long an agentic modernization will take (or cost) is a claim we should not make. Reframe COCOMO everywhere as a RELATIVE complexity/scale index for ranking and sequencing systems only: - assess: capture COCOMO as a complexity index; explicitly ignore scc's 'Estimated Schedule Effort' and cost-in-dollars; ASSESSMENT 'Effort Estimation' section becomes 'Relative Scale' with a not-a-timeline note; portfolio heat-map column renamed Complexity (COCOMO index). - brief: phase plan uses relative T-shirt sizing, not person-months/weeks; phases render as a dependency flowchart, not a gantt (gantt = calendar). - portfolio-assess.js: field cocomoPm -> complexityIndex; return label carries the not-a-duration caveat. - README: 'A note on COCOMO' explains the index framing and points at better intrinsic-complexity proxies. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -82,17 +82,22 @@ if (failed.length) {
|
||||
}
|
||||
|
||||
// COCOMO-II basic, computed here so every row uses the identical formula:
|
||||
// PM = 2.94 × (KSLOC)^1.10 (nominal scale factors).
|
||||
// 2.94 × (KSLOC)^1.10 (nominal scale factors). This is a RELATIVE
|
||||
// complexity/scale index for ranking systems — NOT a duration or cost.
|
||||
// The calling command must render it as an index and never convert it to
|
||||
// person-months / weeks / dates (agentic transformation breaks COCOMO's
|
||||
// human-team productivity assumptions).
|
||||
for (const r of surveyed) {
|
||||
const ksloc = r.sloc / 1000
|
||||
r.cocomoPm = Math.round(2.94 * Math.pow(ksloc, 1.1) * 10) / 10
|
||||
r.complexityIndex = Math.round(2.94 * Math.pow(ksloc, 1.1) * 10) / 10
|
||||
}
|
||||
|
||||
surveyed.sort((a, b) => b.cocomoPm - a.cocomoPm)
|
||||
surveyed.sort((a, b) => b.complexityIndex - a.complexityIndex)
|
||||
|
||||
return {
|
||||
parentDir,
|
||||
rows: surveyed,
|
||||
unmeasured: failed,
|
||||
formula: 'PM = 2.94 × (KSLOC)^1.10 (COCOMO-II basic, nominal scale factors) — computed by the workflow, not estimated by agents',
|
||||
complexityIndexFormula:
|
||||
'2.94 × (KSLOC)^1.10 (COCOMO-II basic, nominal scale factors) — a RELATIVE complexity/scale index for ranking systems, computed by the workflow. NOT a duration or cost: do not render it as person-months/weeks/dates; agentic transformation does not follow COCOMO human-team productivity.',
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user