{"id":"3a466a7e-8dd5-41f0-a5d6-530ca5956573","shortId":"XVamck","kind":"skill","title":"create-github-action-workflow-specification","tagline":"Create a formal specification for an existing GitHub Actions CI/CD workflow, optimized for AI consumption and workflow maintenance.","description":"# Create GitHub Actions Workflow Specification\n\nCreate a comprehensive specification for the GitHub Actions workflow: `${input:WorkflowFile}`.\n\nThis specification serves as a specification for the workflow's behavior, requirements, and constraints. It must be implementation-agnostic, focusing on **what** the workflow accomplishes rather than **how** it's implemented.\n\n## AI-Optimized Requirements\n\n- **Token Efficiency**: Use concise language without sacrificing clarity\n- **Structured Data**: Leverage tables, lists, and diagrams for dense information\n- **Semantic Clarity**: Use precise terminology consistently throughout\n- **Implementation Abstraction**: Avoid specific syntax, commands, or tool versions\n- **Maintainability**: Design for easy updates as workflow evolves\n\n## Specification Template\n\nSave as: `/spec/spec-process-cicd-[workflow-name].md`\n\n```md\n---\ntitle: CI/CD Workflow Specification - [Workflow Name]\nversion: 1.0\ndate_created: [YYYY-MM-DD]\nlast_updated: [YYYY-MM-DD]\nowner: DevOps Team\ntags: [process, cicd, github-actions, automation, [domain-specific-tags]]\n---\n\n## Workflow Overview\n\n**Purpose**: [One sentence describing workflow's primary goal]\n**Trigger Events**: [List trigger conditions]\n**Target Environments**: [Environment scope]\n\n## Execution Flow Diagram\n\n```mermaid\ngraph TD\n    A[Trigger Event] --> B[Job 1]\n    B --> C[Job 2]\n    C --> D[Job 3]\n    D --> E[End]\n    \n    B --> F[Parallel Job]\n    F --> D\n    \n    style A fill:#e1f5fe\n    style E fill:#e8f5e8\n```\n\n## Jobs & Dependencies\n\n| Job Name | Purpose | Dependencies | Execution Context |\n|----------|---------|--------------|-------------------|\n| job-1 | [Purpose] | [Prerequisites] | [Runner/Environment] |\n| job-2 | [Purpose] | job-1 | [Runner/Environment] |\n\n## Requirements Matrix\n\n### Functional Requirements\n| ID | Requirement | Priority | Acceptance Criteria |\n|----|-------------|----------|-------------------|\n| REQ-001 | [Requirement] | High | [Testable criteria] |\n| REQ-002 | [Requirement] | Medium | [Testable criteria] |\n\n### Security Requirements\n| ID | Requirement | Implementation Constraint |\n|----|-------------|---------------------------|\n| SEC-001 | [Security requirement] | [Constraint description] |\n\n### Performance Requirements\n| ID | Metric | Target | Measurement Method |\n|----|-------|--------|-------------------|\n| PERF-001 | [Metric] | [Target value] | [How measured] |\n\n## Input/Output Contracts\n\n### Inputs\n\n```yaml\n# Environment Variables\nENV_VAR_1: string  # Purpose: [description]\nENV_VAR_2: secret  # Purpose: [description]\n\n# Repository Triggers\npaths: [list of path filters]\nbranches: [list of branch patterns]\n```\n\n### Outputs\n\n```yaml\n# Job Outputs\njob_1_output: string  # Description: [purpose]\nbuild_artifact: file  # Description: [content type]\n```\n\n### Secrets & Variables\n\n| Type | Name | Purpose | Scope |\n|------|------|---------|-------|\n| Secret | SECRET_1 | [Purpose] | Workflow |\n| Variable | VAR_1 | [Purpose] | Repository |\n\n## Execution Constraints\n\n### Runtime Constraints\n\n- **Timeout**: [Maximum execution time]\n- **Concurrency**: [Parallel execution limits]\n- **Resource Limits**: [Memory/CPU constraints]\n\n### Environmental Constraints\n\n- **Runner Requirements**: [OS/hardware needs]\n- **Network Access**: [External connectivity needs]\n- **Permissions**: [Required access levels]\n\n## Error Handling Strategy\n\n| Error Type | Response | Recovery Action |\n|------------|----------|-----------------|\n| Build Failure | [Response] | [Recovery steps] |\n| Test Failure | [Response] | [Recovery steps] |\n| Deployment Failure | [Response] | [Recovery steps] |\n\n## Quality Gates\n\n### Gate Definitions\n\n| Gate | Criteria | Bypass Conditions |\n|------|----------|-------------------|\n| Code Quality | [Standards] | [When allowed] |\n| Security Scan | [Thresholds] | [When allowed] |\n| Test Coverage | [Percentage] | [When allowed] |\n\n## Monitoring & Observability\n\n### Key Metrics\n\n- **Success Rate**: [Target percentage]\n- **Execution Time**: [Target duration]\n- **Resource Usage**: [Monitoring approach]\n\n### Alerting\n\n| Condition | Severity | Notification Target |\n|-----------|----------|-------------------|\n| [Condition] | [Level] | [Who/Where] |\n\n## Integration Points\n\n### External Systems\n\n| System | Integration Type | Data Exchange | SLA Requirements |\n|--------|------------------|---------------|------------------|\n| [System] | [Type] | [Data format] | [Requirements] |\n\n### Dependent Workflows\n\n| Workflow | Relationship | Trigger Mechanism |\n|----------|--------------|-------------------|\n| [Workflow] | [Type] | [How triggered] |\n\n## Compliance & Governance\n\n### Audit Requirements\n\n- **Execution Logs**: [Retention policy]\n- **Approval Gates**: [Required approvals]\n- **Change Control**: [Update process]\n\n### Security Controls\n\n- **Access Control**: [Permission model]\n- **Secret Management**: [Rotation policy]\n- **Vulnerability Scanning**: [Scan frequency]\n\n## Edge Cases & Exceptions\n\n### Scenario Matrix\n\n| Scenario | Expected Behavior | Validation Method |\n|----------|-------------------|-------------------|\n| [Edge case] | [Behavior] | [How to verify] |\n\n## Validation Criteria\n\n### Workflow Validation\n\n- **VLD-001**: [Validation rule]\n- **VLD-002**: [Validation rule]\n\n### Performance Benchmarks\n\n- **PERF-001**: [Benchmark criteria]\n- **PERF-002**: [Benchmark criteria]\n\n## Change Management\n\n### Update Process\n\n1. **Specification Update**: Modify this document first\n2. **Review & Approval**: [Approval process]\n3. **Implementation**: Apply changes to workflow\n4. **Testing**: [Validation approach]\n5. **Deployment**: [Release process]\n\n### Version History\n\n| Version | Date | Changes | Author |\n|---------|------|---------|--------|\n| 1.0 | [Date] | Initial specification | [Author] |\n\n## Related Specifications\n\n- [Link to related workflow specs]\n- [Link to infrastructure specs]\n- [Link to deployment specs]\n\n```\n\n## Analysis Instructions\n\nWhen analyzing the workflow file:\n\n1. **Extract Core Purpose**: Identify the primary business objective\n2. **Map Job Flow**: Create dependency graph showing execution order\n3. **Identify Contracts**: Document inputs, outputs, and interfaces\n4. **Capture Constraints**: Extract timeouts, permissions, and limits\n5. **Define Quality Gates**: Identify validation and approval points\n6. **Document Error Paths**: Map failure scenarios and recovery\n7. **Abstract Implementation**: Focus on behavior, not syntax\n\n## Mermaid Diagram Guidelines\n\n### Flow Types\n- **Sequential**: `A --> B --> C`\n- **Parallel**: `A --> B & A --> C; B --> D & C --> D`\n- **Conditional**: `A --> B{Decision}; B -->|Yes| C; B -->|No| D`\n\n### Styling\n```mermaid\nstyle TriggerNode fill:#e1f5fe\nstyle SuccessNode fill:#e8f5e8\nstyle FailureNode fill:#ffebee\nstyle ProcessNode fill:#f3e5f5\n```\n\n### Complex Workflows\nFor workflows with 5+ jobs, use subgraphs:\n```mermaid\ngraph TD\n    subgraph \"Build Phase\"\n        A[Lint] --> B[Test] --> C[Build]\n    end\n    subgraph \"Deploy Phase\"  \n        D[Staging] --> E[Production]\n    end\n    C --> D\n```\n\n## Token Optimization Strategies\n\n1. **Use Tables**: Dense information in structured format\n2. **Abbreviate Consistently**: Define once, use throughout\n3. **Bullet Points**: Avoid prose paragraphs\n4. **Code Blocks**: Structured data over narrative\n5. **Cross-Reference**: Link instead of repeat information\n\nFocus on creating a specification that serves as both documentation and a template for workflow updates.","tags":["create","github","action","workflow","specification","awesome","copilot","agent-skills","agents","custom-agents","github-copilot","hacktoberfest"],"capabilities":["skill","source-github","skill-create-github-action-workflow-specification","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/create-github-action-workflow-specification","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (7,453 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:07.904Z","embedding":null,"createdAt":"2026-04-18T20:25:37.806Z","updatedAt":"2026-05-18T18:52:07.904Z","lastSeenAt":"2026-05-18T18:52:07.904Z","tsv":"'-001':248,266,279,525,535 '-002':254,529,539 '-1':228,236 '-2':233 '/spec/spec-process-cicd-':123 '1':193,293,320,339,344,546,605,747 '1.0':136,578 '2':197,299,553,614,755 '3':201,558,624,762 '4':564,632,768 '5':568,640,717,775 '6':649 '7':658 'abbrevi':756 'abstract':103,659 'accept':245 'access':370,376,492 'accomplish':66 'action':4,15,27,37,157,385 'agnost':60 'ai':20,74 'ai-optim':73 'alert':440 'allow':413,418,423 'analysi':598 'analyz':601 'appli':560 'approach':439,567 'approv':482,485,555,556,647 'artifact':326 'audit':476 'author':577,582 'autom':158 'avoid':104,765 'b':191,194,205,673,677,680,686,688,691,729 'behavior':51,511,516,663 'benchmark':533,536,540 'block':770 'branch':310,313 'build':325,386,725,732 'bullet':763 'busi':612 'bypass':407 'c':195,198,674,679,682,690,731,742 'captur':633 'case':505,515 'chang':486,542,561,576 'ci/cd':16,130 'cicd':154 'clariti':84,96 'code':409,769 'command':107 'complex':712 'complianc':474 'comprehens':32 'concis':80 'concurr':355 'condit':177,408,441,445,684 'connect':372 'consist':100,757 'constraint':54,264,269,348,350,362,364,634 'consumpt':21 'content':329 'context':226 'contract':286,626 'control':487,491,493 'core':607 'coverag':420 'creat':2,7,25,30,138,618,786 'create-github-action-workflow-specif':1 'criteria':246,252,258,406,521,537,541 'cross':777 'cross-refer':776 'd':199,202,210,681,683,693,737,743 'data':86,455,461,772 'date':137,575,579 'dd':142,148 'decis':687 'defin':641,758 'definit':404 'dens':93,750 'depend':220,224,464,619 'deploy':396,569,596,735 'describ':168 'descript':270,296,302,323,328 'design':112 'devop':150 'diagram':91,184,667 'document':551,627,650,793 'domain':160 'domain-specific-tag':159 'durat':435 'e':203,216,739 'e1f5fe':214,699 'e8f5e8':218,703 'easi':114 'edg':504,514 'effici':78 'end':204,733,741 'env':291,297 'environ':179,180,289 'environment':363 'error':378,381,651 'event':174,190 'evolv':118 'except':506 'exchang':456 'execut':182,225,347,353,357,432,478,622 'exist':13 'expect':510 'extern':371,450 'extract':606,635 'f':206,209 'f3e5f5':711 'failur':387,392,397,654 'failurenod':705 'ffebe':707 'file':327,604 'fill':213,217,698,702,706,710 'filter':309 'first':552 'flow':183,617,669 'focus':61,661,784 'formal':9 'format':462,754 'frequenc':503 'function':240 'gate':402,403,405,483,643 'github':3,14,26,36,156 'github-act':155 'goal':172 'govern':475 'graph':186,620,722 'guidelin':668 'handl':379 'high':250 'histori':573 'id':242,261,273 'identifi':609,625,644 'implement':59,72,102,263,559,660 'implementation-agnost':58 'inform':94,751,783 'infrastructur':592 'initi':580 'input':39,287,628 'input/output':285 'instead':780 'instruct':599 'integr':448,453 'interfac':631 'job':192,196,200,208,219,221,227,232,235,317,319,616,718 'key':426 'languag':81 'last':143 'level':377,446 'leverag':87 'limit':358,360,639 'link':585,590,594,779 'lint':728 'list':89,175,306,311 'log':479 'maintain':111 'mainten':24 'manag':497,543 'map':615,653 'matrix':239,508 'maximum':352 'md':127,128 'measur':276,284 'mechan':469 'medium':256 'memory/cpu':361 'mermaid':185,666,695,721 'method':277,513 'metric':274,280,427 'mm':141,147 'model':495 'modifi':549 'monitor':424,438 'must':56 'name':126,134,222,334 'narrat':774 'need':368,373 'network':369 'notif':443 'object':613 'observ':425 'one':166 'optim':18,75,745 'order':623 'os/hardware':367 'output':315,318,321,629 'overview':164 'owner':149 'paragraph':767 'parallel':207,356,675 'path':305,308,652 'pattern':314 'percentag':421,431 'perf':278,534,538 'perform':271,532 'permiss':374,494,637 'phase':726,736 'point':449,648,764 'polici':481,499 'precis':98 'prerequisit':230 'primari':171,611 'prioriti':244 'process':153,489,545,557,571 'processnod':709 'product':740 'prose':766 'purpos':165,223,229,234,295,301,324,335,340,345,608 'qualiti':401,410,642 'rate':429 'rather':67 'recoveri':384,389,394,399,657 'refer':778 'relat':583,587 'relationship':467 'releas':570 'repeat':782 'repositori':303,346 'req':247,253 'requir':52,76,238,241,243,249,255,260,262,268,272,366,375,458,463,477,484 'resourc':359,436 'respons':383,388,393,398 'retent':480 'review':554 'rotat':498 'rule':527,531 'runner':365 'runner/environment':231,237 'runtim':349 'sacrif':83 'save':121 'scan':415,501,502 'scenario':507,509,655 'scope':181,336 'sec':265 'secret':300,331,337,338,496 'secur':259,267,414,490 'semant':95 'sentenc':167 'sequenti':671 'serv':43,790 'sever':442 'show':621 'skill' 'skill-create-github-action-workflow-specification' 'sla':457 'source-github' 'spec':589,593,597 'specif':6,10,29,33,42,46,105,119,132,161,547,581,584,788 'stage':738 'standard':411 'step':390,395,400 'strategi':380,746 'string':294,322 'structur':85,753,771 'style':211,215,694,696,700,704,708 'subgraph':720,724,734 'success':428 'successnod':701 'syntax':106,665 'system':451,452,459 'tabl':88,749 'tag':152,162 'target':178,275,281,430,434,444 'td':187,723 'team':151 'templat':120,796 'terminolog':99 'test':391,419,565,730 'testabl':251,257 'threshold':416 'throughout':101,761 'time':354,433 'timeout':351,636 'titl':129 'token':77,744 'tool':109 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'trigger':173,176,189,304,468,473 'triggernod':697 'type':330,333,382,454,460,471,670 'updat':115,144,488,544,548,799 'usag':437 'use':79,97,719,748,760 'valid':512,520,523,526,530,566,645 'valu':282 'var':292,298,343 'variabl':290,332,342 'verifi':519 'version':110,135,572,574 'vld':524,528 'vulner':500 'who/where':447 'without':82 'workflow':5,17,23,28,38,49,65,117,125,131,133,163,169,341,465,466,470,522,563,588,603,713,715,798 'workflow-nam':124 'workflowfil':40 'yaml':288,316 'yes':689 'yyyi':140,146 'yyyy-mm-dd':139,145","prices":[{"id":"a332fc5c-2163-496c-b98d-315d218b05a4","listingId":"3a466a7e-8dd5-41f0-a5d6-530ca5956573","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:37.806Z"}],"sources":[{"listingId":"3a466a7e-8dd5-41f0-a5d6-530ca5956573","source":"github","sourceId":"github/awesome-copilot/create-github-action-workflow-specification","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/create-github-action-workflow-specification","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:47.967Z","lastSeenAt":"2026-05-18T18:52:07.904Z"},{"listingId":"3a466a7e-8dd5-41f0-a5d6-530ca5956573","source":"skills_sh","sourceId":"github/awesome-copilot/create-github-action-workflow-specification","sourceUrl":"https://skills.sh/github/awesome-copilot/create-github-action-workflow-specification","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:37.806Z","lastSeenAt":"2026-05-07T22:40:17.634Z"}],"details":{"listingId":"3a466a7e-8dd5-41f0-a5d6-530ca5956573","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"create-github-action-workflow-specification","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"cfd4bf2e6c82a92c7c9e73769749f248719f6827","skill_md_path":"skills/create-github-action-workflow-specification/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/create-github-action-workflow-specification"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"create-github-action-workflow-specification","description":"Create a formal specification for an existing GitHub Actions CI/CD workflow, optimized for AI consumption and workflow maintenance."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/create-github-action-workflow-specification"},"updatedAt":"2026-05-18T18:52:07.904Z"}}