mk-spec-master 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. mk_spec_master-0.1.0/.dockerignore +15 -0
  2. mk_spec_master-0.1.0/.github/workflows/publish.yml +74 -0
  3. mk_spec_master-0.1.0/.gitignore +42 -0
  4. mk_spec_master-0.1.0/Dockerfile +28 -0
  5. mk_spec_master-0.1.0/LICENSE +21 -0
  6. mk_spec_master-0.1.0/PKG-INFO +78 -0
  7. mk_spec_master-0.1.0/README.md +55 -0
  8. mk_spec_master-0.1.0/docs/prd.md +477 -0
  9. mk_spec_master-0.1.0/examples/configs/claude_desktop_config.example.json +20 -0
  10. mk_spec_master-0.1.0/examples/specs/SPEC-001-apply-discount.md +29 -0
  11. mk_spec_master-0.1.0/pyproject.toml +46 -0
  12. mk_spec_master-0.1.0/smithery.yaml +49 -0
  13. mk_spec_master-0.1.0/src/mk_spec_master/__init__.py +3 -0
  14. mk_spec_master-0.1.0/src/mk_spec_master/adapters/__init__.py +26 -0
  15. mk_spec_master-0.1.0/src/mk_spec_master/adapters/base.py +46 -0
  16. mk_spec_master-0.1.0/src/mk_spec_master/adapters/github_issues.py +137 -0
  17. mk_spec_master-0.1.0/src/mk_spec_master/adapters/markdown_local.py +143 -0
  18. mk_spec_master-0.1.0/src/mk_spec_master/config.py +28 -0
  19. mk_spec_master-0.1.0/src/mk_spec_master/index/__init__.py +5 -0
  20. mk_spec_master-0.1.0/src/mk_spec_master/index/traceability.py +29 -0
  21. mk_spec_master-0.1.0/src/mk_spec_master/parsers/__init__.py +5 -0
  22. mk_spec_master-0.1.0/src/mk_spec_master/server.py +226 -0
  23. mk_spec_master-0.1.0/src/mk_spec_master/tools/__init__.py +8 -0
  24. mk_spec_master-0.1.0/src/mk_spec_master/tools/coverage.py +57 -0
  25. mk_spec_master-0.1.0/src/mk_spec_master/tools/scenarios.py +176 -0
  26. mk_spec_master-0.1.0/src/mk_spec_master/tools/specs.py +118 -0
  27. mk_spec_master-0.1.0/tests/conftest.py +18 -0
  28. mk_spec_master-0.1.0/tests/test_smoke.py +179 -0
@@ -0,0 +1,15 @@
1
+ .git
2
+ .github
3
+ .venv
4
+ venv
5
+ __pycache__
6
+ *.pyc
7
+ .pytest_cache
8
+ .mypy_cache
9
+ .ruff_cache
10
+ dist
11
+ build
12
+ *.egg-info
13
+ docs
14
+ examples
15
+ .DS_Store
@@ -0,0 +1,74 @@
1
+ name: Publish to PyPI
2
+
3
+ # Triggered by every published GitHub Release. Releases are created
4
+ # manually (via `gh release create` or the GitHub UI) so we keep
5
+ # control over what hits PyPI — no auto-publish on tag push.
6
+ #
7
+ # Authentication: PyPI Trusted Publishing (OIDC). No API token stored;
8
+ # instead a one-time setup on PyPI links this repo + workflow file to
9
+ # the project name. Setup mirrors mk-qa-master's "Publishing" section.
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ permissions:
16
+ # OIDC token exchange for Trusted Publishing — no PYPI_API_TOKEN secret needed.
17
+ id-token: write
18
+ contents: read
19
+
20
+ jobs:
21
+ build:
22
+ name: Build distribution
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: "3.12"
31
+
32
+ - name: Install build tooling
33
+ run: python -m pip install --upgrade build twine
34
+
35
+ - name: Verify pyproject version matches the release tag
36
+ # The release tag (e.g. `v0.1.0`) must equal `v<pyproject.version>`.
37
+ # Catches the "tagged but forgot to bump pyproject" failure mode
38
+ # before we ship a wrong-versioned wheel.
39
+ run: |
40
+ set -eu
41
+ TAG="${GITHUB_REF_NAME#v}"
42
+ PY_VER=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")
43
+ echo "release tag (without v) = $TAG"
44
+ echo "pyproject version = $PY_VER"
45
+ test "$TAG" = "$PY_VER"
46
+
47
+ - name: Build sdist + wheel
48
+ run: python -m build
49
+
50
+ - name: Validate distribution metadata
51
+ run: twine check dist/*
52
+
53
+ - name: Upload distribution artifacts
54
+ uses: actions/upload-artifact@v4
55
+ with:
56
+ name: dist
57
+ path: dist/
58
+
59
+ publish:
60
+ name: Publish to PyPI
61
+ needs: build
62
+ runs-on: ubuntu-latest
63
+ environment:
64
+ name: pypi
65
+ url: https://pypi.org/project/mk-spec-master/
66
+ steps:
67
+ - name: Download distribution artifacts
68
+ uses: actions/download-artifact@v4
69
+ with:
70
+ name: dist
71
+ path: dist/
72
+
73
+ - name: Publish to PyPI
74
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,42 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ *$py.class
4
+ *.so
5
+ .Python
6
+ build/
7
+ develop-eggs/
8
+ dist/
9
+ downloads/
10
+ eggs/
11
+ .eggs/
12
+ lib/
13
+ lib64/
14
+ parts/
15
+ sdist/
16
+ var/
17
+ wheels/
18
+ *.egg-info/
19
+ .installed.cfg
20
+ *.egg
21
+ MANIFEST
22
+
23
+ .venv
24
+ venv/
25
+ ENV/
26
+
27
+ .pytest_cache/
28
+ .mypy_cache/
29
+ .ruff_cache/
30
+ .tox/
31
+ htmlcov/
32
+ .coverage
33
+ .coverage.*
34
+
35
+ .idea/
36
+ .vscode/
37
+ *.swp
38
+ *.swo
39
+ .DS_Store
40
+
41
+ # mk-spec-master runtime data (when dogfooding in this repo)
42
+ .mk-spec-master/
@@ -0,0 +1,28 @@
1
+ # MK Spec Master container — built primarily so Glama (and any other MCP
2
+ # catalog that introspects servers in a sandbox) can boot the server,
3
+ # send `initialize` + `tools/list` over stdio, and confirm a clean
4
+ # JSON-RPC response.
5
+ #
6
+ # Day-to-day use stays `uvx mk-spec-master` on the host: real spec
7
+ # fetches need access to the user's repo, network for Linear/JIRA APIs,
8
+ # and credentials that live outside any sane container.
9
+
10
+ FROM python:3.12-slim
11
+
12
+ # Install from local source so the image always reflects the current
13
+ # commit (introspection should pass even before a PyPI release).
14
+ WORKDIR /srv
15
+ COPY pyproject.toml README.md LICENSE ./
16
+ COPY src/ ./src/
17
+ RUN pip install --no-cache-dir .
18
+
19
+ # Defaults for the introspection probe. SPEC_PROJECT_ROOT just needs to
20
+ # resolve to a writable path — config.py only `.resolve()`s it, doesn't
21
+ # require it to exist until a real fetch happens (which we don't expect
22
+ # inside this container).
23
+ ENV SPEC_SOURCE=markdown_local \
24
+ SPEC_PROJECT_ROOT=/tmp/spec-project \
25
+ PYTHONUNBUFFERED=1
26
+
27
+ WORKDIR /tmp/spec-project
28
+ ENTRYPOINT ["python", "-m", "mk_spec_master.server"]
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jack Kao (kao273183)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,78 @@
1
+ Metadata-Version: 2.4
2
+ Name: mk-spec-master
3
+ Version: 0.1.0
4
+ Summary: MCP server bridging specs (Linear / JIRA / GitHub Issues / Notion / Markdown / Figma) to tests, with bidirectional traceability and a spec-quality coach (AI 規格大師)
5
+ Project-URL: Homepage, https://github.com/kao273183/mk-spec-master
6
+ Project-URL: Repository, https://github.com/kao273183/mk-spec-master
7
+ Author-email: Jack Kao <52775937+kao273183@users.noreply.github.com>
8
+ License: MIT
9
+ License-File: LICENSE
10
+ Keywords: acceptance-criteria,mcp,model-context-protocol,requirements,sdd,spec-driven-development,testing,traceability
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development :: Quality Assurance
19
+ Classifier: Topic :: Software Development :: Testing
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: mcp>=1.0.0
22
+ Description-Content-Type: text/markdown
23
+
24
+ <h1 align="center">MK Spec Master</h1>
25
+
26
+ <p align="center">
27
+ <em>AI 規格大師 — specs in, scenarios out. Bidirectional traceability so you always know what's tested.</em>
28
+ </p>
29
+
30
+ <p align="center">
31
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
32
+ <img src="https://img.shields.io/badge/status-pre--alpha-orange.svg" alt="Status: Pre-alpha" />
33
+ </p>
34
+
35
+ > **⚠️ Alpha — v0.1 MVP.** 7 tools shipped (markdown_local + github_issues sources). Full design in [`docs/prd.md`](docs/prd.md). Next: Linear / JIRA adapters + coverage matrix in v0.2.
36
+
37
+ ---
38
+
39
+ ## What this is
40
+
41
+ An MCP server that turns specs — Linear tickets, JIRA stories, GitHub Issues, Notion pages, Figma annotations, plain Markdown — into structured test scenarios, hands them to any test runner (via [`mk-qa-master`](https://github.com/kao273183/mk-qa-master) or directly), and maintains a live spec ↔ test coverage matrix.
42
+
43
+ Sibling to `mk-qa-master` in the `mk-*` family of opinionated AI-QA MCPs.
44
+
45
+ ## Why this is missing from the ecosystem
46
+
47
+ | Tool | Lock-in | What we do differently |
48
+ |---|---|---|
49
+ | AWS Kiro | AWS IDE only, proprietary | MCP-native, multi-client, open source |
50
+ | Jama Connect MCP | $50k+/year, enterprise-only | SMB / indie / AI-native segment |
51
+ | GitHub Spec Kit | spec→code; runtime test coverage out of scope | We add runtime test coverage |
52
+ | testomat.io / JIRA MCPs | Single source (JIRA), SaaS lock | Multi-source, file-based index, no lock |
53
+
54
+ See [`docs/prd.md` §4](docs/prd.md) for the full positioning.
55
+
56
+ ## Status
57
+
58
+ | Milestone | Target | Status |
59
+ |---|---|---|
60
+ | v0.1 (MVP — markdown_local + github_issues, 7 tools) | June 2026 | ✅ Shipped |
61
+ | v0.2 (Linear, JIRA, coverage matrix, spec-quality coach) | Aug 2026 | ⬜ |
62
+ | v0.3 (Notion, Figma, auto-link, optimization plan) | Oct 2026 | ⬜ |
63
+ | v1.0 (production-ready, docs, integration recipes) | Q4 2026 | ⬜ |
64
+
65
+ ## Quick design read
66
+
67
+ - **Vision + problem**: [`docs/prd.md` §1–2](docs/prd.md)
68
+ - **Competitive positioning**: [`docs/prd.md` §4](docs/prd.md)
69
+ - **Tool surface**: [`docs/prd.md` §8](docs/prd.md)
70
+ - **Walkthrough (end-to-end with mk-qa-master)**: [`docs/prd.md` §19](docs/prd.md)
71
+
72
+ ## Related
73
+
74
+ - [mk-qa-master](https://github.com/kao273183/mk-qa-master) — the QA loop sibling. Tests run via mk-qa-master; coverage tracked here.
75
+
76
+ ## License
77
+
78
+ MIT — see [LICENSE](LICENSE).
@@ -0,0 +1,55 @@
1
+ <h1 align="center">MK Spec Master</h1>
2
+
3
+ <p align="center">
4
+ <em>AI 規格大師 — specs in, scenarios out. Bidirectional traceability so you always know what's tested.</em>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
9
+ <img src="https://img.shields.io/badge/status-pre--alpha-orange.svg" alt="Status: Pre-alpha" />
10
+ </p>
11
+
12
+ > **⚠️ Alpha — v0.1 MVP.** 7 tools shipped (markdown_local + github_issues sources). Full design in [`docs/prd.md`](docs/prd.md). Next: Linear / JIRA adapters + coverage matrix in v0.2.
13
+
14
+ ---
15
+
16
+ ## What this is
17
+
18
+ An MCP server that turns specs — Linear tickets, JIRA stories, GitHub Issues, Notion pages, Figma annotations, plain Markdown — into structured test scenarios, hands them to any test runner (via [`mk-qa-master`](https://github.com/kao273183/mk-qa-master) or directly), and maintains a live spec ↔ test coverage matrix.
19
+
20
+ Sibling to `mk-qa-master` in the `mk-*` family of opinionated AI-QA MCPs.
21
+
22
+ ## Why this is missing from the ecosystem
23
+
24
+ | Tool | Lock-in | What we do differently |
25
+ |---|---|---|
26
+ | AWS Kiro | AWS IDE only, proprietary | MCP-native, multi-client, open source |
27
+ | Jama Connect MCP | $50k+/year, enterprise-only | SMB / indie / AI-native segment |
28
+ | GitHub Spec Kit | spec→code; runtime test coverage out of scope | We add runtime test coverage |
29
+ | testomat.io / JIRA MCPs | Single source (JIRA), SaaS lock | Multi-source, file-based index, no lock |
30
+
31
+ See [`docs/prd.md` §4](docs/prd.md) for the full positioning.
32
+
33
+ ## Status
34
+
35
+ | Milestone | Target | Status |
36
+ |---|---|---|
37
+ | v0.1 (MVP — markdown_local + github_issues, 7 tools) | June 2026 | ✅ Shipped |
38
+ | v0.2 (Linear, JIRA, coverage matrix, spec-quality coach) | Aug 2026 | ⬜ |
39
+ | v0.3 (Notion, Figma, auto-link, optimization plan) | Oct 2026 | ⬜ |
40
+ | v1.0 (production-ready, docs, integration recipes) | Q4 2026 | ⬜ |
41
+
42
+ ## Quick design read
43
+
44
+ - **Vision + problem**: [`docs/prd.md` §1–2](docs/prd.md)
45
+ - **Competitive positioning**: [`docs/prd.md` §4](docs/prd.md)
46
+ - **Tool surface**: [`docs/prd.md` §8](docs/prd.md)
47
+ - **Walkthrough (end-to-end with mk-qa-master)**: [`docs/prd.md` §19](docs/prd.md)
48
+
49
+ ## Related
50
+
51
+ - [mk-qa-master](https://github.com/kao273183/mk-qa-master) — the QA loop sibling. Tests run via mk-qa-master; coverage tracked here.
52
+
53
+ ## License
54
+
55
+ MIT — see [LICENSE](LICENSE).