Install
$ agentstack add skill-dungnotnull-export-pharma-packaging-compliance-agent-skill-export-pharma-packaging-compliance-agent-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ● Filesystem access Used
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
SKILL.md - Skill Registry & Execution Guide
Skill Overview
export-pharma-packaging-compliance is a production-grade harness for Pharmaceutical Packaging Regulatory Compliance analysis. It transforms Claude into a domain expert that delivers structured, evidence-backed outputs through a systematic orchestration of specialized sub-skills.
Skill Registration
Skill Metadata
| Property | Value | |----------|-------| | Name | export-pharma-packaging-compliance | | Version | 1.0.0 | | Type | Domain Analysis Harness | | Domain | Pharmaceutical Packaging Regulatory Compliance | | Primary Trigger | /export-pharma-packaging-compliance | | Secondary Triggers | "pharma packaging compliance", "export packaging regulations", "DSCSA", "FMD", "ISO 15378" |
Entry Point
The skill is invoked via the main harness in skills/main.md. All execution flows through this orchestrator.
Architecture Pattern
Modular Chain-of-Thought Routing
The skill uses a sequential step-based routing pattern with explicit quality gates between each step:
User Input
↓
[Pre-Flight: Language Detection]
↓
Step 1: Requirements Gathering
↓ [Gate: Object Confirmed]
Step 2: Evidence Collection
↓ [Gate: Current Data + 1 Authoritative Doc]
Step 3: Core Analysis
↓ [Gate: Barrier/CR/Serialization/GMP]
Step 4: Knowledge Query
↓ [Gate: ≥1 Academic Source]
Step 5: Advisory Synthesis
↓ [Gate: Verdict Category + Disclosure]
Step 6: Quality Gate Review
↓ [Gates U1-U6, G1-G4]
Final Output
Graceful Degradation
The skill implements 5-level degradation:
- Level 0: Full analysis (all sources available)
- Level 1: Partial source failure (substitute with flag)
- Level 2: Most sources failed (knowledge base only)
- Level 3: Missing inputs (proceed with flags)
- Level 4: Complete failure (emit "DATA UNAVAILABLE")
Error Recovery
8 error types with explicit recovery strategies and retry limits.
Sub-Skill Registry
Sub-Skill Catalog
| ID | Name | Step | Timeout | Purpose | |----|------|------|---------|---------| | sub-gather-requirements | Requirements Gatherer | 1 | 60s | Clarify object, scope, constraints, language | | sub-evidence-collector | Evidence Collector | 2 | 120s | Fetch real-time and reference data | | sub-core-analysis | Core Analyzer | 3 | 180s | Verify compliance against standards | | sub-knowledge-updater | Knowledge Querier | 4 | 90s | Query academic knowledge base | | sub-advisor | Senior Advisor | 5 | 120s | Synthesize risk-disclosed conclusion |
Sub-Skill Resolution
Sub-skills are resolved by the main harness using the Skill tool with explicit skill path:
Skill("sub-gather-requirements")
Skill("sub-evidence-collector")
Skill("sub-core-analysis")
Skill("sub-knowledge-updater")
Skill("sub-advisor")
Sub-Skill Input/Output Contracts
Each sub-skill follows the JSON schema defined in config/schemas.json:
- RequirementsOutput: Object, scope, timeframe, inputs, audience, language
- EvidenceOutput: Current data, authoritative docs, recent news, benchmarks
- CoreAnalysisOutput: Barrier, CR/tamper, serialization, stability, GMP, scenarios
- AdvisorOutput: Verdict, scenarios, risks, evidence chain, remediation, disclosure
Tool Definitions
Tool Schemas
The skill uses the following tools with defined schemas:
WebSearch
- Purpose: Fetch real-time domain news and updates
- Timeout: 30 seconds
- Max Results: 10
- Schema:
{
"query": "string",
"maxResults": "integer (1-10)",
"recency": "string (optional)"
}
WebFetch
- Purpose: Scrape authoritative domain sources
- Timeout: 30 seconds
- Max Retries: 3
- Schema:
{
"url": "string (https required)",
"format": "markdown (default)"
}
Read
- Purpose: Read SECOND-KNOWLEDGE-BRAIN.md
- Max File Size: 10MB
- Supported Formats: .md, .txt, .json
Write
- Purpose: Append knowledge entries
- Atomic: Yes
- Schema:
{
"path": "string",
"content": "string",
"mode": "append (default)"
}
Bash
- Purpose: Execute knowledge_updater.py
- Timeout: 60 seconds
- Allowed Commands: python, pip, ls, cat, echo
- Schema:
{
"command": "string",
"timeout": "integer (default 60)"
}
Hooks System
Pre-Execution Hooks
Handlers executed before skill execution:
| Handler | Purpose | Implementation | |---------|---------|----------------| | languageDetection | Detect user language (en/vi) | Character analysis + domain word matching | | inputValidation | Validate required inputs present | Schema validation against RequirementsInput |
Post-Execution Hooks
Handlers executed after skill execution:
| Handler | Purpose | Implementation | |---------|---------|----------------| | qualityGateCheck | Verify all gates passed | Iterate U1-U6, G1-G4 with auto-fix | | outputFormatting | Ensure output format compliance | Validate against FinalReport schema |
Error Hooks
Handlers executed on error:
| Handler | Purpose | Implementation | |---------|---------|----------------| | errorLogging | Log error with context | Structured logging with metadata | | degradationEscalate | Escalate degradation level | Level-based behavior activation | | userNotification | Notify user of limitation | Emit limitation banner |
Quality Gates
Universal Gates (U1-U6)
| Gate | Check | Auto-Fix | Enforcement | |------|-------|----------|-------------| | U1 | ≥3 sources, ≥1 academic | Fetch from KB/evidence | Append before delivery | | U2 | Disclosure before recommendation | Prepend disclosure | Block until present | | U3 | Evidence hierarchy per source | Annotate tiers | Tag each source | | U4 | Language matches preference | Translate output | Re-detect language | | U5 | Output uses template | Reformat to template | Check sections | | U6 | Claims traceable to sources | Flag unsupported | Mark with [judgment] |
Domain Gates (G1-G4)
| Gate | Check | Auto-Fix | Enforcement | |------|-------|----------|-------------| | G1 | Barrier (MVTR/OTR) verified | Verify barrier | Add barrier check | | G2 | Child-resistant/tamper-evident | Add CR/tamper | Add CR/tamper check | | G3 | Serialization/traceability | Add serialization | Add serialization check | | G4 | GMP (ISO 15378) & validation | Add GMP/validation | Add GMP check |
Gate Enforcement Logic
for gate in gates:
retry_count = 0
while retry_count [mandatory notice before recommendation]
## Recommendation / Conclusion
[verdict, scenarios, risks, evidence chain, remediation]
## Post-Execution Gate Checklist
[U1✓ U2✓ U3✓ U4✓ U5✓ U6✓ G1✓ G2✓ G3✓ G4✓ | Limitations: ...]
Language Support
Supported Languages
- English (en): Default
- Vietnamese (vi): Full translation support
Language Detection
Method: Character analysis + domain word matching
Vietnamese Indicators:
- Characters: à á ả ã ạ ă â đ è é ê ì í ò ó ô ơ ù ú ư ý
- Domain words: dược liệu, bao bì, tuân thủ, quy định, xuất khẩu
Fallback: Default to English, ask user to confirm
Translation Table
See config/config.json → i18n.translations for complete mapping.
Knowledge Base Integration
SECOND-KNOWLEDGE-BRAIN.md
Purpose: Living knowledge base updated by crawl pipeline
Structure:
- Core Concepts & Frameworks
- Key Research Papers & Standards
- State-of-the-Art Methods
- Authoritative Data Sources
- Analytical Frameworks
- Self-Update Protocol
- Knowledge Update Log
Update Schedule:
- Academic: Weekly (Mondays 08:00)
- News: Daily (07:00)
Knowledge Query Pattern
def query_knowledge_base(keywords):
entries = []
for keyword in keywords:
matches = search_brain(keyword)
for match in matches:
entries.append({
"title": match.title,
"authors": match.authors,
"year": match.year,
"venue": match.venue,
"doi_or_url": match.doi_or_url,
"tier": match.tier,
"relevance_score": match.score
})
return sorted(entries, key=lambda x: x.relevance_score, reverse=True)[:5]
Monitoring & Logging
Metrics Collected
- executionTime: Time per step and total
- tokenUsage: Input/output tokens per step
- qualityGatePasses: Pass/fail per gate
- sourceAvailability: Success rate per source
- errorRates: Error type frequency
Log Format
{
"timestamp": "2026-07-15T10:30:00Z",
"level": "info",
"component": "main",
"event": "step_completed",
"data": {
"step": "sub-core-analysis",
"duration_ms": 1523,
"tokens_used": 8432,
"gates_passed": ["G1", "G2", "G3", "G4"]
}
}
Feature Flags
| Flag | Default | Purpose | |------|---------|---------| | enableKnowledgeUpdate | true | Enable crawl pipeline | | enableGracefulDegradation | true | Enable 5-level degradation | | enableAutoFix | true | Enable gate auto-fix | | enableMultiLanguage | true | Enable vi/en support | | enableCaching | true | Enable result caching | | enableParallelExecution | false | Enable parallel step execution |
Validation
Pre-Flight Validation
Before execution, validate:
- Configuration files exist and are valid JSON
- SECOND-KNOWLEDGE-BRAIN.md is accessible
- Sub-skill files are present
- Tools are available
Post-Execution Validation
After execution, validate:
- Output matches FinalReport schema
- All quality gates passed (or limitations flagged)
- Language matches user preference
- Disclosure is present before recommendation
Testing
Test Scenarios
See tests/test-scenarios.md for 5+ test scenarios:
- Standard compliance analysis
- Minimal input handling
- Comparison/conflict resolution
- Risk/conflict assessment
- Degraded mode operation
Test Execution
# Run all tests
python tools/run_test_scenarios.py --all
# Run specific scenario
python tools/run_test_scenarios.py --scenario standard
# Validate project structure
python tools/validate_project.py
Dependencies
Runtime Dependencies
requests>=2.31.0
feedparser>=6.0.10
python-dateutil>=2.8.2
Development Dependencies
pytest>=7.4.0
pytest-cov>=4.1.0
black>=23.7.0
flake8>=6.0.0
mypy>=1.5.0
Troubleshooting
Common Issues
Issue: "No CodeGraph project is loaded"
- Cause: Working directory detection issue
- Fix: Pass
projectPathparameter explicitly
Issue: "Source timeout"
- Cause: Network connectivity or source unavailability
- Fix: Applies degradation level 1, retries with alternate source
Issue: "Knowledge base miss"
- Cause: No matches for query in SECOND-KNOWLEDGE-BRAIN.md
- Fix: Triggers gap-fill WebSearch, queues for crawl
Issue: "Quality gate failed after retries"
- Cause: Cannot auto-fix the gate issue
- Fix: Emits limitation notice, continues with flag
License
MIT License - See LICENSE file
Version History
- v1.0.0 (2026-07-15): Initial production release
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: dungnotnull
- Source: dungnotnull/export-pharma-packaging-compliance-agent-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.