{"id":32515462,"url":"https://github.com/stat-kwon/spec_gen_agent","last_synced_at":"2025-10-28T00:52:42.682Z","repository":{"id":318776234,"uuid":"1073347120","full_name":"stat-kwon/spec_gen_agent","owner":"stat-kwon","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-15T00:49:13.000Z","size":263,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-15T05:47:56.906Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stat-kwon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-10T01:30:07.000Z","updated_at":"2025-10-15T00:49:18.000Z","dependencies_parsed_at":"2025-10-15T16:02:58.624Z","dependency_job_id":"9bf2078a-de49-4d40-bfeb-de57972aa61c","html_url":"https://github.com/stat-kwon/spec_gen_agent","commit_stats":null,"previous_names":["stat-kwon/spec_gen_agent"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/stat-kwon/spec_gen_agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stat-kwon%2Fspec_gen_agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stat-kwon%2Fspec_gen_agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stat-kwon%2Fspec_gen_agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stat-kwon%2Fspec_gen_agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stat-kwon","download_url":"https://codeload.github.com/stat-kwon/spec_gen_agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stat-kwon%2Fspec_gen_agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281366845,"owners_count":26488696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-28T00:52:41.968Z","updated_at":"2025-10-28T00:52:42.677Z","avatar_url":"https://github.com/stat-kwon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spec Agent 워크플로우 안내\n\nSpec Agent는 FRS(Functional Requirements Specification) 문서를 입력으로 받아 요구사항부터 OpenAPI까지 일련의 산출물을 자동 생성하는 Agentic 워크플로우입니다. 순차 생성 파이프라인과 품질 보강 루프를 결합해 안정성과 자율성을 동시에 확보합니다.\n\n## 주요 기능\n\n- `requirements.md`, `design.md`, `tasks.md`, `changes.md`, `openapi.json(API 한정)`을 순차적으로 생성\n- 템플릿 검증(`apply_template`, `validate_openapi_spec`)을 통한 형식 품질 보장\n- `QualityImprovementManager`가 품질·일관성 평가 결과에 따라 필요한 문서를 자동 재생성\n- Git 브랜치 생성 및 커밋 연계(옵션)\n- `flow.md`에 전체 흐름 다이어그램과 상세 설명 제공\n\n## 설치 및 설정\n\n```bash\npython -m venv .venv \u0026\u0026 source .venv/bin/activate\npip install -r requirements.txt\npip install -e .\n```\n\n환경 변수 설정:\n\n```bash\ncp .env.example .env\n```\n\n`.env`에 `OPENAI_API_KEY`를 포함해 주세요.\n\n## 사용 방법\n\n```bash\n# API 서비스 명세 생성\nspec-agent generate specs/FRS-1.md --service-type api\n\n# Web 서비스 명세 생성\nspec-agent generate specs/FRS-2.md --service-type web\n\n# 출력 경로 지정\nspec-agent generate specs/FRS-1.md --service-type api --output-dir ./output\n\n# Git 워크플로우 생략\nspec-agent generate specs/FRS-1.md --service-type api --no-git\n\n# 기존 산출물 검증\nspec-agent validate specs/FRS-1/api\n```\n\nCLI는 내부적으로 `spec_agent.workflows.get_workflow()`를 통해 `SpecificationWorkflowRunner`를 불러와 실행합니다.\n\n## 워크플로우 개요\n\n- **Sequential Pipeline**: `SequentialDocumentGenerator`가 FRS 로드 → 에이전트 초기화 → 문서 생성 → 템플릿 검증 → 파일 저장을 고정 순서로 수행합니다.\n- **Adaptive Quality Loop**: `QualityImprovementManager`가 품질·일관성 에이전트 평가를 통합해 승인 여부를 판단하고, 필요한 문서만 재생성하도록 지시합니다.\n- 전체 흐름은 `flow.md`의 Mermaid 다이어그램을 참고하세요.\n\n## 디렉터리 구조\n\n```\nspec_agent/\n├── agents/            # 문서별 에이전트 팩토리\n├── workflows/         # 파이프라인 러너 및 생성/품질 단계 모듈\n│   ├── context.py     # WorkflowContext 데이터 구조\n│   ├── generation.py  # SequentialDocumentGenerator\n│   ├── quality.py     # QualityImprovementManager\n│   ├── git_ops.py     # Git 연동 헬퍼\n│   └── prompts.py     # 프롬프트 빌더\n├── tools/             # 템플릿, 검증, Git 등 도구 함수\n├── utils/             # 로깅 등 공통 유틸\n├── config.py          # 환경 설정 로더\n├── workflow.py        # 기존 경로 호환용 래퍼\n└── cli.py             # CLI 엔트리포인트\n```\n\n생성된 문서는 기본적으로 `specs/\u003cFRS-ID\u003e/\u003cservice-type\u003e/` 경로에 저장됩니다.\n\n## 개발 및 테스트\n\n```bash\n# 포맷/테스트 전 의존성 설치\npip install -r requirements.txt\n\n# 전체 테스트 실행\npytest\n\n# 특정 테스트만 실행\npytest tests/test_workflow_templates.py -k quality\n```\n\n- 테스트는 `tests/` 하위에 Pytest 스타일로 배치되어 있으며, 에이전트 프롬프트와 검증 로직을 집중적으로 다룹니다.\n- 새 에이전트나 템플릿을 추가할 때에는 동일한 스타일의 테스트 시나리오를 추가해 회귀 안전망을 구축해 주세요.\n\n## 참고 자료\n\n- `flow.md`: 전체 워크플로우 다이어그램 및 컨텍스트 설명\n- `specs/`: 샘플 FRS 입력과 생성 결과\n- `AGENTS.md`, `CLAUDE.md`: 프롬프트 설계 및 Agentic 패턴 참고 문서\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstat-kwon%2Fspec_gen_agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstat-kwon%2Fspec_gen_agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstat-kwon%2Fspec_gen_agent/lists"}