소스 정보
- 저장소
- personamanagmentlayer/pcl
- 최근 소스 활동
- 2026년 1월 19일 22:04
- 감지된 SKILL.md 언어
- 영어
- 스타
- 40
- 포크
- 9
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/personamanagmentlayer/pcl --skill standards-expert명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | standards-expert |
| version | 1.0.0 |
| description | Expert-level ISO standards, quality management, compliance, and certification |
| category | professional |
| tags | ["iso","standards","quality-management","compliance","certification"] |
| allowed-tools | ["Read","Write","Edit"] |
Expert guidance for ISO standards, quality management systems, compliance, and certification processes.
from dataclasses import dataclass
from datetime import datetime
from typing import List, Optional
from enum import Enum
class ProcessCategory(Enum):
MANAGEMENT = "management"
OPERATIONAL = "operational"
SUPPORT = "support"
@dataclass
class QualityProcess:
process_id: str
name: str
category: ProcessCategory
owner: str
inputs: List[str]
outputs: List[str]
resources: List[str]
kpis: List[str]
risks: List[str]
class ISO9001QMS:
"""ISO 9001 Quality Management System"""
def __init__(self, organization: str):
self.organization = organization
self.processes: Dict[str, QualityProcess] = {}
self.quality_objectives = []
self.risks = []
self.opportunities = []
def define_process():
.processes[process.process_id] = process
():
.quality_objectives.append({
: objective[],
: objective[],
: objective[],
: objective[],
: objective[],
:
})
() -> :
{
: ._plan_phase(process_id),
: ._do_phase(process_id),
: ._check_phase(process_id),
: ._act_phase(process_id)
}
() -> :
process = .processes.get(process_id)
{
: ,
: process.resources process [],
: process.risks process []
}
() -> :
{
: ,
:
}
() -> :
{
: ,
:
}
() -> :
{
: ,
:
}
class RiskLevel(Enum):
LOW = "low"
MEDIUM = "medium"
HIGH = "high"
CRITICAL = "critical"
@dataclass
class InformationAsset:
asset_id: str
name: str
description: str
owner: str
classification: str # public, internal, confidential, restricted
value: int # 1-5 scale
@dataclass
class SecurityRisk:
risk_id: str
asset_id: str
threat: str
vulnerability: str
likelihood: int # 1-5 scale
impact: int # 1-5 scale
risk_level: RiskLevel
controls: List[str]
residual_risk: RiskLevel
class ISO27001ISMS:
"""ISO 27001 Information Security Management System"""
def __init__(self, organization: str):
self.organization = organization
self.assets: Dict[str, InformationAsset] = {}
self.risks: Dict[str, SecurityRisk] = {}
self.controls = {}
def ():
.assets[asset.asset_id] = asset
() -> SecurityRisk:
risk_score = likelihood * impact
risk_score >= :
risk_level = RiskLevel.CRITICAL
risk_score >= :
risk_level = RiskLevel.HIGH
risk_score >= :
risk_level = RiskLevel.MEDIUM
:
risk_level = RiskLevel.LOW
risk = SecurityRisk(
risk_id=,
asset_id=asset_id,
threat=threat,
vulnerability=vulnerability,
likelihood=likelihood,
impact=impact,
risk_level=risk_level,
controls=[],
residual_risk=risk_level
)
.risks[risk.risk_id] = risk
risk
():
risk_id .risks:
risk = .risks[risk_id]
risk.controls.append(control)
reduced_score = (risk.likelihood * risk.impact) * ( - effectiveness/)
reduced_score >= :
risk.residual_risk = RiskLevel.CRITICAL
reduced_score >= :
risk.residual_risk = RiskLevel.HIGH
reduced_score >= :
risk.residual_risk = RiskLevel.MEDIUM
:
risk.residual_risk = RiskLevel.LOW
() -> :
controls = {
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
:
}
{
: .organization,
: controls,
:
}
class AuditType(Enum):
INTERNAL = "internal"
EXTERNAL = "external"
CERTIFICATION = "certification"
SURVEILLANCE = "surveillance"
@dataclass
class AuditFinding:
finding_id: str
audit_id: str
type: str # 'non_conformity', 'observation', 'opportunity'
severity: str # 'major', 'minor'
description: str
clause_reference: str
evidence: str
corrective_action: Optional[str] = None
due_date: Optional[datetime] = None
status: str = 'open'
class AuditManager:
"""Manage quality audits"""
def __init__(self):
self.audits = {}
self.findings: Dict[str, AuditFinding] = {}
def plan_audit(self, audit_id: str, audit_type: AuditType,
scope: List[str], auditors: List[str],
date: datetime) -> Dict:
"""Plan an audit"""
audit = {
: audit_id,
: audit_type.value,
: scope,
: auditors,
: date,
:
}
.audits[audit_id] = audit
audit
():
.findings[finding.finding_id] = finding
():
finding_id .findings:
finding = .findings[finding_id]
finding.corrective_action = action
finding.due_date = due_date
finding.status =
{
: finding_id,
: action,
: responsible,
: due_date
}
():
finding_id .findings:
finding = .findings[finding_id]
finding.status =
{
: finding_id,
: datetime.now(),
: verification
}
() -> :
audit = .audits.get(audit_id)
audit_findings = [f f .findings.values()
f.audit_id == audit_id]
{
: audit,
: (audit_findings),
: ( f audit_findings
f.severity == ),
: ( f audit_findings
f.severity == ),
: ( f audit_findings
f. == ),
: audit_findings
}
@dataclass
class Document:
document_id: str
title: str
version: str
author: str
approver: str
effective_date: datetime
review_date: datetime
status: str # 'draft', 'approved', 'obsolete'
class DocumentControl:
"""Manage controlled documents"""
def __init__(self):
self.documents: Dict[str, List[Document]] = {}
def create_document(self, doc: Document):
"""Create new document"""
if doc.document_id not in self.documents:
self.documents[doc.document_id] = []
self.documents[doc.document_id].append(doc)
def get_current_version(self, document_id: str) -> Optional[Document]:
"""Get current approved version"""
if document_id in self.documents:
versions = [d for d in self.documents[document_id]
if d.status == 'approved']
if versions:
(versions, key= x: x.version)
() -> Document:
current = .get_current_version(document_id)
current:
new_version = ._increment_version(current.version)
new_doc = Document(
document_id=document_id,
title=current.title,
version=new_version,
author=author,
approver=current.approver,
effective_date=datetime.now(),
review_date=datetime.now(),
status=
)
.create_document(new_doc)
new_doc
() -> :
parts = version.split()
parts[-] = ((parts[-]) + )
.join(parts)
❌ Documentation for its own sake ❌ No management involvement ❌ Treating certification as the goal ❌ Ignoring audit findings ❌ No continuous improvement ❌ Poor document control ❌ Insufficient training