@jrpool/kilotest 59.1.1 → 59.1.2

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.
@@ -1,40 +0,0 @@
1
- ---
2
- date: 2026-09-14
3
- status: accepted
4
- ---
5
-
6
- # QAI integration
7
-
8
- ## Context and problem
9
-
10
- The QAI application (at `https://github.com/jrpool/qai`) is a small standalone Node.js server deployed at `https://kilotest.com/qai`. QAI is a tutorial showing users how to connect AI platforms (specifically, Claude on `claude.ai`) to Kilotest's MCP server. The `kilotest` repository already provides a tutorial showing users how to use Kilotest itself. The two-repository split was required by an organizational constraint that no longer applies. QAI's own purpose (teaching users how to connect an AI platform to Kilotest) makes it naturally a part of Kilotest's tutorial content. Should QAI remain a separate deployment, or be folded into Kilotest?
11
-
12
- ## Considered options
13
-
14
- 1. **Keep separate:** QAI remains an independent repository with its own deployment, continuous integration, and process management.
15
- 2. **Merge into Kilotest:** Port QAI's tutorial content and comment-collection infrastructure into Kilotest as a second tutorial module, retire QAI as a separate deployment, and simplify the Caddyfile and process management.
16
-
17
- ## Decision
18
-
19
- **Merge into Kilotest**, because:
20
-
21
- - QAI is fundamentally tutorial content for Kilotest, not an independent application. Keeping it in a separate repository obscures this relationship.
22
- - Merging eliminates duplicate infrastructure: both repositories use the same comment-storage pattern, alert environment variables, build configuration, and type-checking standards. A single repository reduces maintenance burden.
23
- - The existing `web/tutorial/` pattern in Kilotest provides a proven, documented template for modules combining an HTML page with a comment-collection form and email alerts. QAI's infrastructure was originally designed by copying this pattern; reusing it directly instead of maintaining a reimplementation aligns the codebase with DRY principles.
24
- - Simplifying the Caddyfile and process management reduces the risk of configuration drift, and makes the deployment easier to reason about.
25
- - Merging improves the documentation standard. QAI includes 9 ADRs and architectural/requirements/deployment documentation that enriches Kilotest's own documentation, which initially had only 2 ADRs.
26
-
27
- ### Confirmation
28
-
29
- To confirm that the implementation is correct:
30
-
31
- 1. All tests pass with 100% coverage, and linting and type-checking produce no errors.
32
- 2. The new QAI tutorial page and comment form are reachable and functional at their new `/tutorialAI.html` path.
33
- 3. The old QAI paths (`/qai`, `/qai/comments`) redirect correctly to the new paths.
34
- 4. Comments submitted to the new form are stored correctly and trigger email alerts as configured.
35
-
36
- ## Historical context
37
-
38
- QAI was initially developed as an independent deployment partly because Kilotest had not yet implemented monitoring and alerting infrastructure. By the time QAI reached deployment, both QAI and Kilotest had similar comment-collection and alerting patterns. Keeping QAI separate after this convergence created unnecessary duplication. This merge resolves that architectural drift and reestablishes Kilotest as the canonical location for all Kilotest-related tutorial content.
39
-
40
- The separate `jrpool/qai` repository is preserved as a historical archive in `jrpool`'s account and can be kept as read-only history for reference.
@@ -1,42 +0,0 @@
1
- # QAI historical context
2
-
3
- This document preserves pointers to documentation and development history from the `jrpool/qai` repository, which was integrated into Kilotest as part of the decision documented in [ADR 009](./009-qai-integration.md).
4
-
5
- ## QAI architectural decisions (superseded or historical)
6
-
7
- The following ADRs from QAI are not ported to Kilotest, but their reasoning and historical context are preserved in the `jrpool/qai` repository for reference:
8
-
9
- - **003-initial-routing.md**: QAI originally chose to deploy as an independent service on a separate port, separate from Kilotest's port 3000. This was driven by course requirements and the need for QAI to have evaluable infrastructure of its own. ADR 009 documents the superseding decision to integrate QAI into Kilotest's deployment.
10
-
11
- - **004-prerelease-versions.md**: QAI used prerelease versioning (0.1.0, etc.) during initial development. This versioning scheme is not carried forward to the integrated Kilotest; Kilotest's own version scheme applies to all content.
12
-
13
- - **005-infrastructure-health.md**: QAI originally required its own external monitoring with UptimeRobot because Kilotest lacked health monitoring infrastructure. This constraint is now resolved; Kilotest's unified monitoring and alerting (covered in ADR 005-observability.md) applies to both the tutorial content and any other components.
14
-
15
- ## QAI development history
16
-
17
- Sprint reports, peer reviews, and development progress documentation are preserved in the `jrpool/qai` repository:
18
-
19
- - `docs/progress-reports/` contains sprint reviews and reflections from the course development of QAI (sprints 3–5).
20
- - `docs/reviews/` contains peer review feedback on QAI's initial implementation.
21
-
22
- This historical record is retained in `jrpool/qai`'s git history and is not duplicated in Kilotest's codebase.
23
-
24
- ## Branch protection and CI configuration
25
-
26
- QAI's GitHub branch-protection ruleset (`docs/rulesets/qai-main.json`) enforced requirements similar to those already in place for Kilotest. Kilotest's own branch protection, documented in `docs/SERVICE.md`, supersedes QAI's configuration, and the separate QAI ruleset file is not ported.
27
-
28
- ## QAI domain-specific documentation
29
-
30
- The following documents from QAI are superseded by the integration:
31
-
32
- - **`requirements.md`**: Documented QAI's specific functional requirements. These remain valid for the integrated tutorial, but are now framed as part of Kilotest's tutorial offerings rather than QAI-specific product requirements. Tutorial requirements are documented in the code comments and inline in `web/tutorialAI/index.ts` rather than as a separate file.
33
-
34
- - **`architecture.md`**: Described QAI as an independent deployment. With integration, QAI's architecture is now part of Kilotest's architecture, and the former QAI-specific architectural overview is superseded by Kilotest's architecture and API design documented in the main codebase and in [ADR 001 (API design)](./001-api-design.md).
35
-
36
- - **`deployment.md`**: Documented QAI's guest deployment on Kilotest infrastructure and its PM2 configuration. With QAI integrated into Kilotest, a single deployment configuration applies to both. PM2 and infrastructure details are now documented in `docs/SERVICE.md` with no separate QAI-specific deployment doc.
37
-
38
- - **`repository.md`**, **`project-vision.md`**: Project-management framing specific to QAI as a university-course project. These provide historical context but are not carried forward to Kilotest's documentation.
39
-
40
- - **`future.md`**, **`ai-implementation-review.md`**: Point-in-time project status and review artifacts. Historical context and any actionable ideas are incorporated into the main codebase and Kilotest's backlog; the original documents are not ported.
41
-
42
- - **`manual-verification.md`**: Documented QAI's testing and deployment verification procedures. Kilotest's unified test suite and continuous-integration configuration now cover the integrated tutorial content. Some manual verification procedures from QAI (such as form submission and alerting) are mirrored in Kilotest's `smokeTest.ts` and existing test suites.