Use this when the policy is missing, when it was copied from a template, or when auditors will sample changes and the team wants the policy to describe what the pipeline proves. You get three documents in a new folder, ./secure-development-policy-from-pipeline/: a table of what your build and release pipeline actually enforces today, repository by repository (enforcement-inventory.md); a draft secure development policy of three to five pages that only promises what that table shows (secure-development-policy.md); and a list of gaps and decisions for the engineering lead (decisions.md). This skill drafts for a human to review and sign; this skill never marks a control effective. The engineering lead approves the policy.
Inputs to gather
Read, without changing anything: the repositories' pipeline definitions, code owner files, dependency update configuration, infrastructure-as-code, release and deployment scripts, and any repository or organisation settings export the reader provides (branch rules, required checks, who can bypass them). Read the incident log for change-related outages and past security findings. Ask the reader, in one message: which repositories reach production, who can deploy, whether the company ships software or devices to customers in the EU, and whether production data is ever used outside production.
Step 1: pick the repositories
All repositories that reach production are in scope. If there are many, inventory all for branch rules and required checks (cheap), and read pipelines in depth for the five with the most deployments plus any that handle payments, authentication or personal data. Record the selection in the enforcement table.
Step 2: inventory what is enforced
For each practice, record where it is enforced (file path or setting), its scope (all in-scope repositories, some, none), its strength and its bypasses:
- Peer review before merge: number of approvals, code owners, whether authors can approve their own change, whether administrators can bypass.
- Required checks: tests, static analysis, dependency vulnerability scanning, secret scanning, infrastructure and container scanning, licence checks.
- Strength: blocking (the merge or deploy fails), advisory (a report nobody has to read) or manual (someone is meant to look). Only blocking counts as enforced.
- Deployment: who or what deploys, environment approvals, separation of duties between the person who writes and the person who releases, rollback.
- Dependencies and supply chain: pinned versions, update automation, a software bill of materials generated at build, signed artefacts.
- Secrets: where secrets come from at build and run time, and whether a detected secret blocks the push.
- Environments: whether production data reaches development or test, and how it is masked, citing the mechanism (masked clone job, synthetic data seed) per environment rather than an answer.
- Vulnerability intake: a published way for outsiders to report a flaw, and fix-time targets by severity.
- Exceptions in use: pull the bypass and emergency change log for the period; a bypass path with no recorded after-the-fact review is the first thing an auditor samples.
Write the enforcement table (enforcement-inventory.md) as one table, with the control id from the reader's control set or applicability statement per row and the pipeline definition versions it was built from. A practice that is blocking in 18 of 20 repositories is not "enforced"; name the two.
Step 3: write the policy from the inventory
Draft the policy (secure-development-policy.md). Each statement in it cites its enforcement point in a footnote or table column. Use three tiers:
- Must: enforced and blocking across scope, or a decision the lead takes now to make it so.
- Should: practised but partial or advisory. State the target and the owner in the decisions list (
decisions.md). - Not stated: practices the team does not do. Do not write them as commitments; list them in the decisions list as gaps with a proposal.
Keep the policy to three to five pages: scope, roles, change and review, testing and scanning, dependencies and build integrity, secrets, environments and data, release and rollback, vulnerability handling with fix-time targets, exceptions (how an emergency change is approved and reviewed after the fact). Where a framework expects specific secure development or change practices, run a framework lookup for each topic and record the answer against the inventory, rather than assuming.
Step 4: add product obligations if the company ships to the EU
If the company places products with digital elements on the EU market, the Cyber Resilience Act sets essential cybersecurity requirements in Annex I, including vulnerability handling and identifying the product's components, and Article 14 covers reporting actively exploited vulnerabilities. Article 14 reporting applies from 11 September 2026 and the remaining obligations from 11 December 2027. Run a framework lookup on whether the products are in scope and their category, and add the commitments the team will run: vulnerability handling, component inventory, a coordinated disclosure policy and the support period.
What good looks like
- The best reviewer checks who can bypass the rules before checking the rules: an organisation where administrators can merge unreviewed code has optional review, whatever the settings page shows.
- The common mistake is a template policy promising mandatory review, penetration tests per release and zero critical findings, while the pipeline lets scans fail silently. The tell: a sampled change merged with a failing scan and one self-approval, and the policy says that cannot happen.
- The inventory is re-run quarterly and after major tooling changes; branch rules drift weekly.
- Good output lets an auditor pick any "must", open the cited file or setting and see it enforced, and lets an engineer read the policy in ten minutes and recognise their own workflow.
Framework lookups
If ISMS Copilot is connected to your agent (MCP server https://account.ismscopilot.com/v1/account/mcp), ask it the framework question with create_conversation (mode think, answer_format: decision) and keep one conversation for this task. Send only a short question in your own words, show it to the user first, and never include file contents, secrets, personal data or evidence. If it is not connected, check the official text of the framework yourself; this skill does not restate it. Set it up: https://www.ismscopilot.com/mcp?ref=grcskills-secure-development-policy-from-pipeline
Rules
- MUST cite the file path or setting behind every "must" in the policy.
- MUST record bypasses and advisory-only checks as gaps, not as enforcement.
- MUST write outputs only inside
./secure-development-policy-from-pipeline/and ask before overwriting. - NEVER change repository settings, pipelines or branch rules; propose changes in
decisions.md. - NEVER read, print or copy secrets, tokens or credential files found in the repositories.
- NEVER commit the policy to the reader's repository without their explicit approval.