Przejdź do treści
Biblioteka skilli
Prawo i compliance · Przegląd i audyt

iso27001-sdlc

/iso27001-sdlc

Skanuje repozytorium oprogramowania pod kątem zgodności z ISO 27001:2022 w kontrolach rozwoju (Annex A 8.4 i 8.25-8.33) i tworzy raport zgodności dla każdej kontroli.

Repozytorium
claude-code ↗
Licencja
MIT
Ostatnia zmiana repozytorium
07.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
5
Skrypty
2
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 07.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co sprawdzić przed instalacją
  • 2 skrypty w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.

Skrypty: scripts/scan_repo.py, scripts/secure_coding_scanner.py

Co robi i kiedy

Skanuje repozytorium oprogramowania pod kątem zgodności z ISO 27001:2022 w kontrolach rozwoju (Annex A 8.4 i 8.25-8.33) i tworzy raport zgodności dla każdej kontroli.

Oryginalny opis (EN)

Scan a software repository for ISO 27001:2022 compliance of its software development controls. Produces a per-control compliance report covering Annex A controls 8.4, 8.25–8.33 (source code access, secure SDLC, application security requirements, secure architecture, secure coding, security testing, outsourced development, environment separation, change management, and test data). Use this skill whenever a user mentions ISO 27001, ISMS compliance, security audit readiness, Annex A controls, secure SDLC compliance, or wants to check whether their codebase meets information security standards. Al

Jak działa

  1. Before you start
  2. Architecture: two-phase scan → score
  3. Phase 1: Collect evidence
  4. Phase 2: Score and report
  5. Report format
  6. Example control output
  7. Monorepo handling
  8. After the report
  9. Key principles
Sekcje z nagłówków SKILL.md, w oryginale · 272 linii, 1 494 słów
Podgląd SKILL.md
---
name: iso27001-sdlc
description: >
  Scan a software repository for ISO 27001:2022 compliance of its software development controls.
  Produces a per-control compliance report covering Annex A controls 8.4, 8.25–8.33
  (source code access, secure SDLC, application security requirements, secure architecture,
  secure coding, security testing, outsourced development, environment separation, change
  management, and test data). Use this skill whenever a user mentions ISO 27001, ISMS compliance,
  security audit readiness, Annex A controls, secure SDLC compliance, or wants to check whether
  their codebase meets information security standards. Also trigger when the user asks about
  audit preparation for software development, security control gaps, or compliance posture
  of a repository — even if they don't mention ISO 27001 by name but describe wanting to verify
  security practices against a standard.
disable-model-invocation: true
---

# ISO 27001:2022 Software Development Compliance Scanner

Scans a repository and produces a compliance gap report against the
ISO 27001:2022 Annex A software development controls (8.4, 8.25–8.33).

## Before you start

Read `references/controls.md` — it contains the per-control scoring rules,
example fix suggestions, and the mapping from evidence to status.

For 8.28 (Secure Coding) checks, also read `references/secure-coding-patterns.md`
which contains the per-language/framework lookup tables for libraries, config
locations, and unsafe code patterns.

## Architecture: two-phase scan → score

The skill separates evidence collection (deterministic) from compliance
scoring (judgment-based). This eliminates inconsistency where the same file
gets assessed differently for different controls.

**Phase 1 — Scan** runs `scripts/scan_repo.py` to collect all file evidence
into a single JSON structure. This is the only phase that touches the filesystem.

**Phase 2 — Score** reads the JSON evidence and applies the scoring rules from
`references/controls.md` to produce the markdown report. Evidence is mapped to
controls, not re-discovered per control.

## Phase 1: Collect evidence

Run the scanning script:

```bash
python /path/to/skill/scripts/scan_repo.py /path/to/repo --output /tmp/iso27001-evidence.json
```

The script indexes the entire repo and produces structured evidence covering:
file pattern matches, linter configs, security analysis tools, faker/synthetic
data libraries, hardcoded secret patterns, .gitignore checks, CI/CD config
analysis, ADR security content, security test files, language/container/IaC
detection, and monorepo detection.

Review the scan summary printed to stderr. If the repo is a monorepo (the
script detects this), see the Monorepo Handling section below before proceeding.

If the script fails or the repo is not locally available, fall back to manual
scanning: use `find`, `grep`, and `cat` to collect the same evidence described
in `references/controls.md`. The script is a convenience, not a hard dependency.

## Phase 2: Score and report

Read the evidence JSON produced by Phase 1. For each of the 10 core controls
(8.4, 8.25, 8.26, 8.27, 8.28, 8.29, 8.30, 8.31, 8.32, 8.33), apply the
scoring rules in `references/controls.md`.

The evidence JSON maps to controls like this:

| Evidence key | Used by controls |
|---|---|
| `file_evidence.codeowners` | 8.4, 8.32 |
| `file_evidence.pr_template`, `pr_template_security` | 8.25, 8.32 |
| `file_evidence.issue_template` | 8.25, 8.26 |
| `file_evidence.security_policy` | 8.25 |
| `architecture_security`, `adr_findings` | 8.27 |
| `file_evidence.threat_model` | 8.27 |
| `linter_evidence`, `security_analysis` | 8.28 |
| `secrets_findings`, `env_gitignore` | 8.28 |
| `file_evidence.lockfiles`, `file_evidence.dependency_scanning_config` | 8.28 |
| `secure_coding_practices.secure_coding_deps.input_validation` | 8.28, 8.26 |
| `secure_coding_practices.secure_coding_deps.authentication` | 8.28 |
| `secure_coding_practices.secure_coding_deps.password_hashing` | 8.28 |
| `secure_coding_practices.secure_coding_deps.security_headers` | 8.28 |
| `secure_coding_practices.secure_coding_deps.rate_limiting` | 8.28 |
| `secure_coding_practices.secure_coding_deps.sanitization` | 8.28 |
| `secure_coding_practices.secure_coding_deps.orm` | 8.28 |
| `secure_coding_practices.secure_coding_deps.structured_logging` | 8.28, supporting 8.16 |
| `secure_coding_practices.source_patterns.unsafe_functions` | 8.28 |
| `secure_coding_practices.source_patterns.raw_sql` | 8.28 |
| `secure_coding_practices.source_patterns.deprecated_crypto` | 8.28 |
| `secure_coding_practices.source_patterns.xss_template_escapes` | 8.28 |
| `secure_coding_practices.source_patterns.insecure_cors` | 8.28 |
| `secure_coding_practices.source_patterns.insecure_config` | 8.28 |
| `secure_coding_practices.csrf_evidence` | 8.28 |
| `secure_coding_practices.sbom_tooling` | 8.28, supporting 8.8 |
| `ci_evidence.security_jobs` | 8.25, 8.28, 8.29 |
| `security_test_files` | 8.29 |
| `file_evidence.env_specific_configs`, `file_evidence.env_dirs` | 8.31 |
| `file_evidence.changelog`, `file_evidence.commitlint_config` | 8.32 |
| `faker_evidence`, `file_evidence.test_fixtures_dirs` | 8.33 |

When a single piece of evidence is relevant to multiple controls, reference
it consistently — do not re-assess or describe it differently in each section.
Example: if CI has CodeQL configured, that's SAST evidence for 8.29, a
security gate for 8.25, and supporting evidence for 8.28. State the fact once,
reference it in each control.

After scoring core controls, do a lighter pass on supporting controls
(5.8, 8.7, 8.8, 8.9, 8.16) — present if found, flag if absent, but don't
fail the report over them.

### Handling absent infrastructure

If no CI/CD configuration is found, do not attempt CI-related checks.
Instead flag CI/CD as an analysis gap and include this guidance:

> ISO 27001:2022 expects automated security controls integrated into the
> build and deployment pipeline: static analysis (SAST), dependency scanning
> (SCA), and approval gates before production deployment. Without CI/CD
> configuration in the repository, these controls cannot be verified. The
> organization should document its CI/CD approach and ensure security scans
> are mandatory pipeline stages.

The same principle applies to any absent infrastructure — flag the gap,
explain the ISO requirement, move on.

## Report format

Produce a single markdown report. Use this structure:

```markdown
# ISO 27001:2022 Software Development Compliance Report

**Repository:** <name>
**Scan date:** <date>
**Languages/frameworks:** <detected>
**CI/CD system:** <detected or "None detected">
**Repository type:** <single project / monorepo with N sub-projects>

## Executive Summary

<Lead with the highest-risk gap. State overall posture. Name the #1 priority action.>

**Overall posture:** <STRONG / MODERATE / WEAK / CRITICAL GAPS>

| Status | Count |
|--------|-------|
| PASS | X |
| WARNING | X |
| FAIL | X |
| MANUAL REVIEW NEEDED | X |
| NOT APPLICABLE | X |

## Detailed Findings

### 8.X — <Control Name>

**Status:** PASS / FAIL / WARNING / NOT APPLICABLE / MANUAL REVIEW NEEDED

**What this control requires:**
<1-2 sentences from the control intent in controls.md>

**Evidence found:**
- <file path or config with brief description>

**Gaps identified:**
- <what is missing>

**Recommended actions:**
- <concrete fix suggestion from controls.md>
- <if templates would help: "A template for <X> can be generated on request.">

---

[repeat for each of the 10 controls]

## Supporting Controls

| Control | Status | Notes |
|---------|--------|-------|
| 5.8 — Info security in project mgmt | ... | ... |
| 8.8 — Vulnerability management | ... | ... |
| ... | ... | ... |

## Next Steps

<Top 3-5 prioritized actions. Be specific: "Add a .bandit config for Python
SAST" not "improve security testing.">

## Appendix: Analysis Limitations

<What the scan could not verify: platform-level access controls, process
adherence, training records, contractual controls, etc.>
```

Keep the report concise. For large repos, summarize evidence per control
(e.g., "14 workflow files found, 3 contain security scanning stages")
rather than listing every file. Only list individual files when they're
notable (secrets found, key configs present/absent).

## Example control output

This example shows the expected quality bar for a single control finding:

```markdown
### 8.28 — Secure Coding

**Status:** WARNING

**What this control requires:**
Apply secure coding principles to prevent common vulnerabilities. Enforce
coding standards, use static analysis, manage dependencies securely, and
prevent hardcoded secrets.

**Evidence found:**
- `.eslintrc.json` — ESLint configured but no security plugin (`eslint-plugin-security` absent)
- `package-lock.json` — dependency lock file present
- `.github/dependabot.yml` — automated dependency updates configured
- `.env` in `.gitignore` — environment files properly excluded
- `.env.example` — environment variable documentation present

**Gaps identified:**
- No security-focused static analysis tool configured (no Semgrep, Bandit, or equivalent)
- No secrets scanning configured (no Gitleaks, GitGuardian, or detect-secrets)
- No secure coding standards document found in repository
- 2 potential hardcoded secrets detected:
  - `src/config/api.ts:14` — Generic API Key assignment
  - `scripts/deploy.sh:8` — Connection string with credentials

**Recommended actions:**
- Add `eslint-plugin-security` to ESLint config and enable recommended rules
- Add Gitleaks with a `.gitleaks.toml` config; integrate into CI as a pre-commit hook and pipeline stage
- Rotate the credentials found in `src/config/api.ts` and `scripts/deploy.sh`; move them to environment variables or a secrets manager
- Create a secure coding standards document covering OWASP Top 10 mitigations for your stack. A template can be generated on request.
```

## Monorepo handling

When the scan detects a monorepo (`monorepo.is_monorepo: true`):

1. **Produce one aggregate report**, not one per sub-project. The ISMS scope
   is the organization's development practices, not individual packages.

2. **Note sub-project count and structure** in the report header.

3. **For controls that vary by sub-project** (e.g., different languages have
   different linter configs), summarize coverage:
   "8 of 12 sub-projects have language-appropriate linter configs. Missing:
   packages/auth, packages/billing, packages/legacy, packages/scripts."

4. **CI/CD is typically shared** in monorepos. Assess the root-level CI config
   and note if sub-projects have additional CI configurations.

5. **Flag monorepo-specific risks**: shared dependency lock files that may
   mask per-package vulnerabilities, inconsistent security tooling across
   sub-projects, and the need for CODEOWNERS to cover all sub-project paths.

## After the report

Offer follow-up actions:
- "I can generate template files for any of the missing documents or
  configurations — just tell me which ones."
- "I can do a deeper scan of specific areas if you want more detail on
  any control."
- "I can inspect specific CI workflow files or config files in detail."

Do NOT generate template files unless the user explicitly asks for specific ones.

## Key principles

- **Evidence-based:** every finding references a concrete file path or absence.
  Never assert compliance without evidence.
- **Conservative:** when in doubt, flag as WARNING or MANUAL REVIEW NEEDED.
  False assurance is worse than a false alarm.
- **Actionable:** every gap has a concrete fix suggestion (see examples in
  controls.md). "Improve your security" is not actionable.
- **Scope-honest:** be explicit about what a repo scan can and cannot verify.
  Many controls are process/organizational.
- **Consistent:** evidence is collected once, referenced everywhere. The same
  file never gets contradictory assessments across controls.
- **Proportional:** report length scales to findings, not repo size. Summarize
  when evidence is repetitive.
Pliki w paczce (5)
  • SKILL.md 12 KB
  • references/controls.md 33 KB
  • references/secure-coding-patterns.md 14 KB
  • scripts/scan_repo.py 37 KB
  • scripts/secure_coding_scanner.py 26 KB

Wersje

W bazie nie ma innych skilli o nazwie iso27001-sdlc.

Migawka bazy z 28.10.2026 · wersja paczki 3ab9c290f0db (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100isms-audit-expert
    Wspiera audyt ISMS pod kątem ISO 27001: przegląd dowodów wdrożenia kontroli, Statement of Applicability, analiza luk, dokumentowanie ustaleń i niezgodności oraz przygotowanie do certyfikacji.
  • 100iso-27001-2022-compliance
    Weryfikuje zgodność z ISO/IEC 27001:2022 na podstawie repozytorium kodu: kontrole Annex A, dokumentacja ISMS (klauzule 4-10), Statement of Applicability i generowanie dowodów.
  • 100isms-audit-expert
    Prowadzi audyty ISMS pod zgodność z ISO 27001: programy audytów, audyty wewnętrzne i zewnętrzne, testy kontroli ISO 27002 Annex A oraz audyty certyfikacyjne Stage 1 i Stage 2.
  • 90iso27001
    Wspiera zgodność z ISO/IEC 27001: analiza luk, audyt, listy kontrolne, polityki, Statement of Applicability, ocena i rejestr ryzyka, plan postępowania z ryzykiem, kontrole Annex A i wdrożenie ISMS.
  • 100iso27001-compliance
    Wdraża system zarządzania bezpieczeństwem informacji ISO 27001, konfiguruje kontrole ISMS i zarządzanie ryzykiem w ramach korporacyjnych standardów bezpieczeństwa.
  • 100iso27001-compliance
    Wdraża system zarządzania bezpieczeństwem informacji ISO 27001, konfiguruje kontrole ISMS i zarządzanie ryzykiem w ramach korporacyjnych standardów bezpieczeństwa.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.