skills/arckit-fr-code-reuse/SKILL.md
[COMMUNITY] Assess public code reuse opportunities before building from scratch — search code.gouv.fr, the SILL, and European public code repositories; produce a build-vs-reuse decision matrix
npx skillsauth add tractorjuice/arckit-codex arckit-fr-code-reuseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
⚠️ Community-contributed command — not part of the officially-maintained ArcKit baseline. Output should be reviewed by qualified DPO / RSSI / legal counsel before reliance. Citations to ANSSI / CNIL / EU regulations may lag the current text — verify against the source.
You are helping an enterprise architect assess public code reuse opportunities before commissioning new development for a French public administration project. French administrations are required by the Circulaire du Premier Ministre n°6264-SG (27 April 2021) and the Loi pour une République Numérique (2016, Art. 16) to:
The primary French public code resources are:
$ARGUMENTS
Note: Before generating, scan
projects/for existing project directories. For each project, list allARC-*.mdartifacts, checkexternal/for reference documents, and check000-global/for cross-project policies. If no external docs exist but they would improve output, ask the user.
MANDATORY (warn if missing):
RECOMMENDED (read if available, note if missing):
OPTIONAL (read if available, skip silently):
external/ — extract any technology selection studies, ADRs, vendor assessments, or previous reuse decisions000-global/policies/ — extract open source policy, technology standardisation policy, data governance policy (affects which data can be processed by third-party open source components)Identify the target project from the hook context. If the project doesn't exist:
projects/*/ directories and find the highest NNN-* numberprojects/{NNN}-{slug}/README.mdPROJECT_ID and PROJECT_PATHRead all documents from Step 0. Extract:
Read the template (with user override support):
.arckit/templates-custom/fr-code-reuse-template.md exists in the project root.arckit/templates/fr-code-reuse-template.mdBreak down the system into discrete components that can each be assessed independently for reuse. For each component, assign a COMP-xx ID and note:
For each COMP-xx, search code.gouv.fr/sources for existing public administration code in the same domain. Assess each candidate repository:
Notable code.gouv.fr repositories to always consider by domain:
For each COMP-xx, check the SILL for recommended software in the same category:
The SILL is organised by category. Key categories to check: identity and access management, content management, databases, monitoring, collaboration, productivity, development tools, security.
For components with no French public code match, extend the search to:
For each component selected for reuse, verify licence compatibility:
For each component, produce a decision with justification:
$arckit-fr-marche-publicFor any component that is forked:
Assess which code developed for this project must be published as open source:
CRITICAL: Use the Write tool to create the full assessment document.
Detect version: Check for existing ARC-{PROJECT_ID}-REUSE-v*.md files:
Auto-populate Document Control:
ARC-{PROJECT_ID}-REUSE-v{VERSION}Write the complete assessment following the template.
Before writing the file, read .arckit/references/quality-checklist.md and verify all Common Checks plus REUSE per-type checks pass.
Write the document to:
projects/{project_id}/ARC-{PROJECT_ID}-REUSE-v{VERSION}.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Public Code Reuse Assessment Generated
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📄 Document: projects/{project_id}/ARC-{PROJECT_ID}-REUSE-v{VERSION}.md
📋 Document ID: {document_id}
📅 Date: {date}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Reuse Summary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Components assessed: {N}
Reuse (as-is): {N}
Fork and adapt: {N}
SILL assembly: {N}
Procure: {N}
Build from scratch: {N}
Estimated effort saved by reuse: {estimate}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Publication Obligation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Code to publish on code.gouv.fr: {Yes — N components / No / Partial}
{If exceptions: list with justification}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Next steps:
1. {If procurement needed: Run $arckit-fr-marche-public for components requiring sourcing}
2. {If technology selection needed: Run $arckit-research for market alternatives}
3. Run $arckit-fr-dinum to verify alignment with DINUM open source doctrine
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Document | Publisher | URL | |----------|-----------|-----| | code.gouv.fr — French public administration open source repositories | DINUM | https://code.gouv.fr/sources/ | | SILL (Socle Interministériel de Logiciels Libres) — recommended open source software for the French State | DINUM | https://code.gouv.fr/sill/ | | Circulaire PM n°6264-SG (2021) — open source obligation for public administrations | DINUM | https://www.numerique.gouv.fr/publications/politique-logiciel-libre/ | | Loi République Numérique Art. 16 — code publication obligation | Légifrance | https://www.legifrance.gouv.fr/loda/id/JORFTEXT000033202746 | | EUPL-1.2 licence — recommended for French public code | Joinup / EC | https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 | | Joinup — EU public code catalogue | European Commission | https://joinup.ec.europa.eu/ | | DINUM mission logiciels libres | DINUM | https://code.gouv.fr/ |
Note for reviewers: French public administrations are legally required to search for existing open source code before commissioning new development (Circulaire 2021), and to publish code developed for them as open source unless exceptions apply (Loi République Numérique 2016). The SILL is a curated list of recommended free software maintained by an interministerial working group under DINUM — analogous in purpose to the UK's Technology Code of Practice open standards requirement, but with a formal recommended software list.
projects/{project_id}/ARC-{PROJECT_ID}-REUSE-v{VERSION}.md$arckit-fr-code-reuse Assess reuse opportunities for a French ministry citizen portal — needs: identity/authentication, document management, notification service, content management, API gateway
$arckit-fr-code-reuse Code reuse assessment for 001 — DINUM digital services platform, check code.gouv.fr and SILL for dashboard, forms, and data visualisation components
$arckit-fr-code-reuse Reuse assessment for a French regional council digital services platform — citizen portal, internal workflow engine, GIS mapping, document signing
After completing this command, consider running:
$arckit-fr-marche-public -- If no reusable code found, generate procurement documentation to source the component (when Build-vs-reuse decision concludes that procurement is required for one or more components)$arckit-research -- Research commercial and open source market alternatives for components with no public code match (when No public code reuse candidate found and a technology selection decision is needed)$arckit-fr-dinum -- Align code reuse and open source decisions with DINUM doctrine obligations (when Project is a French public administration IS subject to DINUM circulaire on open source)tools
Procurement market intelligence — award-value benchmarks, top suppliers, incumbency and concentration, from the UK Tenders MCP
tools
Competitor landscape — rival suppliers, awarded-value market share, head-to-head and concentration, from the UK Tenders MCP
development
[COMMUNITY] Generate a SOCI Act Critical Infrastructure Risk Management Program (CIRMP) governance and evidence pack for Australian critical infrastructure assets.
development
[COMMUNITY] Generate an ASD operational technology cyber security assessment for Australian Government and critical-infrastructure projects with connected OT environments.