[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HZ6840XPDG2CV9842ETX47":3,"skill-same:01M6HZ6840XPDG2CV9842ETX47":93},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6HZ6840XPDG2CV9842ETX47","repo-modernization",null,"stage legacy cleanup and modernization without losing the current operating path. use when a repo has dependency drift, weak validation, outdated frameworks, monolith friction, or repeated delivery pain that needs a phased plan instead of a rewrite impulse.","ldilov\u002Fharness-forge","ldilov","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F25016670?v=4","01M6HYXAEJP0KYT2DF86WYN8QK","Lazar Dilov","01M6HYXAJETHAW5DD5TAAFEQ7D",6,"GPL-3.0","https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"repo modernization","repo","modernization","frameworks","path","monolith","operating","rewrite","stage","delivery","drift","Legacy","dependency","friction","use","plan","validation","cleanup","2026-11-10 10:12:30",false,"---\nname: repo-modernization\ndescription: stage legacy cleanup and modernization without losing the current operating path. use when a repo has dependency drift, weak validation, outdated frameworks, monolith friction, or repeated delivery pain that needs a phased plan instead of a rewrite impulse.\n---\n\n# Repo Modernization\n\n## Trigger Signals\n\n- the repo is legacy, inconsistent, slow to change, or missing dependable workflows\n- dependencies, framework versions, or build tooling are clearly behind the desired support window\n- repeated pain shows up in build fragility, onboarding cost, release risk, or architectural drag\n\n## Inspect First\n\n- build, test, and release entrypoints\n- runtime and framework versions, dependency manifests, and lockfiles\n- architecture seams, integration boundaries, and highest-risk hotspots\n- observability, CI, documentation, and rollback surfaces that determine whether change is safe\n\n## Workflow\n\n1. establish the current operating path and the minimum validation baseline needed to change the repo safely\n2. group problems into modernization layers: visibility, build and dependency health, codebase consistency, and architecture\n3. separate quick wins from seam-first refactors and from truly strategic platform changes\n4. produce a staged roadmap with validation and rollback expectations for each phase\n5. prefer incremental replacement and automation over big-bang rewrites unless evidence says otherwise\n\n## Output Contract\n\n- current-state summary with the biggest sources of drag or risk\n- prioritized modernization themes and why they matter now\n- phased roadmap with prerequisites, safety rails, and likely owners\n- automation candidates, migration helpers, and explicit non-goals\n\n## Failure Modes\n\n- the repo lacks enough validation to support any meaningful modernization safely\n- production topology or support commitments are too unclear to judge migration risk\n- the proposed plan collapses into a rewrite with no intermediate value or rollback path\n\n## Escalation\n\n- escalate when modernization would break support or release commitments without a transition plan\n- escalate when the work crosses multiple teams or service boundaries with no owner alignment\n- escalate when data migration, security posture, or compliance constraints materially change the plan\n\n## References\n\n- `skills\u002Frepo-modernization\u002Freferences\u002Fmodernization-layers.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fstrangler-and-seams.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fdependency-and-build-modernization.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fsafety-rails.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fautomation-candidates.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Froadmap-template.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fexamples.md`\n","# Repo Modernization\n\n## Trigger Signals\n\n- the repo is legacy, inconsistent, slow to change, or missing dependable workflows\n- dependencies, framework versions, or build tooling are clearly behind the desired support window\n- repeated pain shows up in build fragility, onboarding cost, release risk, or architectural drag\n\n## Inspect First\n\n- build, test, and release entrypoints\n- runtime and framework versions, dependency manifests, and lockfiles\n- architecture seams, integration boundaries, and highest-risk hotspots\n- observability, CI, documentation, and rollback surfaces that determine whether change is safe\n\n## Workflow\n\n1. establish the current operating path and the minimum validation baseline needed to change the repo safely\n2. group problems into modernization layers: visibility, build and dependency health, codebase consistency, and architecture\n3. separate quick wins from seam-first refactors and from truly strategic platform changes\n4. produce a staged roadmap with validation and rollback expectations for each phase\n5. prefer incremental replacement and automation over big-bang rewrites unless evidence says otherwise\n\n## Output Contract\n\n- current-state summary with the biggest sources of drag or risk\n- prioritized modernization themes and why they matter now\n- phased roadmap with prerequisites, safety rails, and likely owners\n- automation candidates, migration helpers, and explicit non-goals\n\n## Failure Modes\n\n- the repo lacks enough validation to support any meaningful modernization safely\n- production topology or support commitments are too unclear to judge migration risk\n- the proposed plan collapses into a rewrite with no intermediate value or rollback path\n\n## Escalation\n\n- escalate when modernization would break support or release commitments without a transition plan\n- escalate when the work crosses multiple teams or service boundaries with no owner alignment\n- escalate when data migration, security posture, or compliance constraints materially change the plan\n\n## References\n\n- `skills\u002Frepo-modernization\u002Freferences\u002Fmodernization-layers.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fstrangler-and-seams.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fdependency-and-build-modernization.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fsafety-rails.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fautomation-candidates.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Froadmap-template.md`\n- `skills\u002Frepo-modernization\u002Freferences\u002Fexamples.md`\n",{"name":5,"description":7},"main","27337828f396bcf279d7c4353a4a4f0cdc97659f","skills\u002Frepo-modernization",1,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge","https:\u002F\u002Fgithub.com\u002Fldilov","2026-05-19 21:48:38",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add ldilov\u002Fharness-forge --skill repo-modernization",{"tool":55,"command":56},"bunx","bunx skills add ldilov\u002Fharness-forge --skill repo-modernization",{"tool":58,"command":59},"pnpm","pnpm dlx skills add ldilov\u002Fharness-forge --skill repo-modernization","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002FSKILL.md",true,[63,69,73,77,81,85,89],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"references\u002Fautomation-candidates.md","REFERENCE","参考文档",668,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002Freferences\u002Fautomation-candidates.md",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fdependency-and-build-modernization.md",628,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002Freferences\u002Fdependency-and-build-modernization.md",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fexamples.md",483,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002Freferences\u002Fexamples.md",{"path":78,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fmodernization-layers.md",816,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002Freferences\u002Fmodernization-layers.md",{"path":82,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Froadmap-template.md",580,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002Freferences\u002Froadmap-template.md",{"path":86,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fsafety-rails.md",519,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002Freferences\u002Fsafety-rails.md",{"path":90,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fstrangler-and-seams.md",794,"https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Frepo-modernization\u002Freferences\u002Fstrangler-and-seams.md",[94,124,156,176,199,211],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":105,"publishedAt":37},"01M6HZ7WE4DSYWPX0W2JX9BD8K","typescript-engineering","typescript and javascript engineering guidance seeded from the harness forge knowledge base. use when the repo or task is dominated by .ts, .tsx, package.json, tsconfig, node.js services, react, next.js, frontend tooling, or multi-package workspaces where type boundaries matter.","https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Ftypescript-engineering\u002FSKILL.md",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[106,107,108,109,110,111,112,113,114,115,116,117,20,33,118,119,120,121,122,123],"typescript","engineering","typescript engineering","frontend","javascript","react","harness","package","forge","Next.js","knowledge","node","workspaces","tsx","task","next","knowledge base","type",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":138,"publishedAt":37},"01M6HZ7QRWHQP72E7DPB6W5S6C","token-budget-optimizer","compact context, reuse existing runtime artifacts, and choose the smallest authoritative surface before expanding prompt history. use when the task is growing large, when earlier repo intelligence already exists, or when repeated rescans would waste tokens without adding new evidence.","https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-budget-optimizer\u002FSKILL.md",[130,133],{"categoryNo":131,"categoryName":132,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":134,"categoryName":135,"taxonomyType":136,"taxonomyTypeDesc":137},"01JBSEEDCAT000000000000040","财务","PROFESSION","适用职业",[139,140,141,142,143,144,145,146,20,147,148,33,149,120,150,151,152,153,154,155],"Budget","optimizer","token","token budget","token budget optimizer","artifacts","choose","history","prompt","context","evidence","intelligence","compact","tokens","runtime","reuse","Existing",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":165,"publishedAt":37},"01M6HZ7MMX3ZZP4KF2FVC2EHP0","test-strategy-and-coverage","Define right-sized test layers and coverage priorities for a change.","https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Ftest-strategy-and-coverage\u002FSKILL.md",[162],{"categoryNo":163,"categoryName":164,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000008","测试与质量",[166,167,168,169,170,171,172,173,174,175],"test","strategy","coverage","test strategy","test strategy and coverage","change","priorities","define","layers","for",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":37},"01M6HZ7HE9C6MGWT9JG17Z3Y3M","speckit-taskstoissues","Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts.","https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Fspeckit-taskstoissues\u002FSKILL.md",[],[183,184,185,186,187,188,189,144,190,191,192,31,193,194,195,196,197,198,175,155],"speckit taskstoissues","speckit","design","directory","project structure","tasks","github issues","issues","specify","convert","structure","project","commands","feature","actionable","kit",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":205,"publishedAt":37},"01M6HZ7E2NMYB9N2GKYVRF09AK","speckit-tasks","Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts.","https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Fspeckit-tasks\u002FSKILL.md",[],[188,206,184,185,186,207,187,208,144,191,31,193,194,195,196,197,209,210,198,175],"speckit tasks","github","generate","spec-kit","with",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":37},"01M6HZ7AS0E880YSZN4FEFF6QF","speckit-specify","Create or update the feature specification from a natural language feature description.","https:\u002F\u002Fgithub.com\u002Fldilov\u002Fharness-forge\u002Fblob\u002Fmain\u002Fskills\u002Fspeckit-specify\u002FSKILL.md",[],[191,218,184,186,219,207,187,220,221,222,223,224,193,194,195,196,209,210,225,198],"speckit specify","spec","create","update","templates","specification","natural language","feature specification"]