jhste-skills 0.5.2 → 0.6.0
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.
- package/CHANGELOG.md +17 -0
- package/README.en.md +26 -24
- package/README.md +26 -24
- package/package.json +4 -4
- package/skills/jhste-coding/SKILL.md +17 -21
- package/skills/jhste-coding/agents/openai.yaml +7 -0
- package/skills/jhste-domain-modeling/SKILL.md +40 -0
- package/skills/jhste-domain-modeling/agents/openai.yaml +7 -0
- package/skills/jhste-grill/SKILL.md +32 -0
- package/skills/jhste-grill/agents/openai.yaml +7 -0
- package/skills/jhste-to-tickets/SKILL.md +64 -0
- package/skills/jhste-to-tickets/agents/openai.yaml +7 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.6.0 - 2026-07-13
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- Added `jhste-grill` for focused, one-question-at-a-time decision interviews.
|
|
9
|
+
- Added `jhste-to-tickets` for GitHub-native parent issues, sub-issues, and dependency graphs.
|
|
10
|
+
- Added `jhste-domain-modeling` for domain terminology, concept boundaries, glossaries, and selective ADR capture.
|
|
11
|
+
- Added Codex UI metadata and explicit implicit-invocation policy for every bundled skill.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Reworked `jhste-coding` from a SOLID tutorial into a lean outcome, contract, autonomy, and validation discipline for GPT-5.6.
|
|
15
|
+
- Expanded the npm package, documentation, and validation from one skill to four independent skills.
|
|
16
|
+
- Replaced the recommendation to install Matt Pocock workflows separately with a curated JHSTE-owned workflow set.
|
|
17
|
+
|
|
18
|
+
### Removed
|
|
19
|
+
- Removed SOLID-first branding and exhaustive SOLID restatement from the coding skill.
|
|
20
|
+
- Kept TDD, code review, debugging-process, Wayfinder, and architecture-audit workflows outside the package.
|
|
21
|
+
|
|
5
22
|
## 0.5.2 - 2026-07-12
|
|
6
23
|
|
|
7
24
|
### Changed
|
package/README.en.md
CHANGED
|
@@ -2,50 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
[한국어](README.md) | ENG
|
|
4
4
|
|
|
5
|
-
A
|
|
5
|
+
A personal engineering skill set maintained around GPT-5.6's outcome-first, lean-prompt guidance. Each skill works independently and may be selected implicitly when the user's intent matches its narrow trigger.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Skills
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- **`jhste-coding`** — implements features, fixes bugs, and refactors code with a small change and relevant validation.
|
|
10
|
+
- **`jhste-grill`** — sharpens a plan or design through one consequential decision question at a time.
|
|
11
|
+
- **`jhste-to-tickets`** — splits defined work into GitHub parent/sub-issues with native dependencies.
|
|
12
|
+
- **`jhste-domain-modeling`** — clarifies domain terms, boundaries, and relationships, and records them in a glossary or ADR when requested.
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
The skills do not require or automatically call one another. A request may use more than one when it contains multiple intents. For example, invoke `jhste-grill` with `jhste-domain-modeling` to interview through a design and record the domain terms that become settled.
|
|
15
|
+
|
|
16
|
+
## Behavioral boundaries
|
|
17
|
+
|
|
18
|
+
- `jhste-coding` applies only when repository code must change.
|
|
19
|
+
- `jhste-grill` applies when the user wants an interview or decision stress test; ordinary ambiguity alone must not start a long interview.
|
|
20
|
+
- `jhste-to-tickets` drafts by default. It writes to GitHub only when the user explicitly asks to create, post, or publish the issues.
|
|
21
|
+
- `jhste-domain-modeling` analyzes and proposes by default. It edits repository documentation only when the user asks to record or apply the decisions.
|
|
22
|
+
|
|
23
|
+
This package intentionally omits TDD, code-review, debugging-process, Wayfinder, and architecture-audit workflows. It favors the model's baseline capabilities and repository CI or guidance, adding another skill only after a repeated real failure justifies it.
|
|
12
24
|
|
|
13
25
|
## Install user-wide from npm
|
|
14
26
|
|
|
15
|
-
This package
|
|
27
|
+
This package has no CLI. It distributes the four skills and their Codex metadata.
|
|
16
28
|
|
|
17
29
|
```sh
|
|
18
30
|
npm install -g jhste-skills
|
|
19
31
|
mkdir -p "$HOME/.agents/skills"
|
|
20
|
-
cp -R "$(npm root -g)/jhste-skills/skills
|
|
32
|
+
cp -R "$(npm root -g)/jhste-skills/skills/." "$HOME/.agents/skills/"
|
|
21
33
|
```
|
|
22
34
|
|
|
23
|
-
|
|
35
|
+
Run the copy command again after updating the npm package. Restart Codex if the updated skills do not appear.
|
|
24
36
|
|
|
25
37
|
## Install user-wide from the repository
|
|
26
38
|
|
|
27
39
|
```sh
|
|
28
40
|
mkdir -p "$HOME/.agents/skills"
|
|
29
|
-
cp -R skills
|
|
41
|
+
cp -R skills/. "$HOME/.agents/skills/"
|
|
30
42
|
```
|
|
31
43
|
|
|
32
|
-
|
|
44
|
+
If another agent expects a different global skills directory, copy the four directories under `skills/` there. This package does not require project-local skill copies.
|
|
45
|
+
|
|
46
|
+
## Development and validation
|
|
33
47
|
|
|
34
48
|
```sh
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
npm test
|
|
50
|
+
npm pack --dry-run
|
|
37
51
|
```
|
|
38
52
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
## SOLID-first discipline
|
|
42
|
-
|
|
43
|
-
`jhste-coding` keeps code changes small and practical, with SOLID as the main lens:
|
|
44
|
-
|
|
45
|
-
- **Single Responsibility:** keep each changed unit centered on one clear job.
|
|
46
|
-
- **Open/Closed:** add extension seams only when real variation would otherwise keep changing the same core logic.
|
|
47
|
-
- **Liskov Substitution:** preserve caller-facing expectations such as return shape, nullability, errors, and side effects.
|
|
48
|
-
- **Interface Segregation:** depend on the smallest useful contract.
|
|
49
|
-
- **Dependency Inversion:** keep business rules separate from concrete side effects when it improves clarity.
|
|
50
|
-
|
|
51
|
-
The skill is for active coding discipline, not broader process automation or review pipelines.
|
|
53
|
+
Pushing a `v*.*.*` release tag runs GitHub Actions checks and publishes the package through npm trusted publishing.
|
package/README.md
CHANGED
|
@@ -2,50 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
한국어 | [ENG](README.en.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
GPT-5.6의 outcome-first, lean-prompt 지침에 맞춰 관리하는 개인용 엔지니어링 스킬 모음입니다. 각 스킬은 독립적으로 동작하며, 필요한 경우 Codex가 사용자 의도에 맞춰 자동 호출할 수 있습니다.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 스킬
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- **`jhste-coding`** — 기능 구현, 버그 수정, 리팩터링을 작은 변경과 관련 검증으로 완료합니다.
|
|
10
|
+
- **`jhste-grill`** — 계획이나 설계를 한 번에 하나의 중요한 결정 질문으로 구체화합니다.
|
|
11
|
+
- **`jhste-to-tickets`** — 명확해진 작업을 GitHub 부모/sub-issues와 native dependency로 분할합니다.
|
|
12
|
+
- **`jhste-domain-modeling`** — 도메인 용어, 개념 경계, 관계를 명확히 하고 요청 시 glossary나 ADR에 반영합니다.
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
스킬은 서로를 강제로 호출하지 않습니다. 하나의 요청이 여러 의도를 포함하면 함께 사용할 수 있습니다. 예를 들어 설계 인터뷰 중 확정된 용어를 기록하려면 `jhste-grill`과 `jhste-domain-modeling`을 함께 지정할 수 있습니다.
|
|
15
|
+
|
|
16
|
+
## 동작 경계
|
|
17
|
+
|
|
18
|
+
- `jhste-coding`은 실제 코드 변경 요청에만 사용합니다.
|
|
19
|
+
- `jhste-grill`은 사용자가 인터뷰나 결정 검증을 원할 때 사용하며, 단순한 모호성만으로 긴 인터뷰를 시작하지 않습니다.
|
|
20
|
+
- `jhste-to-tickets`는 기본적으로 초안을 만듭니다. 사용자가 GitHub에 생성·게시하라고 명시한 경우에만 외부 쓰기를 수행합니다.
|
|
21
|
+
- `jhste-domain-modeling`은 기본적으로 분석하고 제안합니다. 사용자가 기록·반영을 요청한 경우에만 저장소 문서를 수정합니다.
|
|
22
|
+
|
|
23
|
+
TDD, 코드 리뷰, 디버깅 절차, Wayfinder, 아키텍처 감사 workflow는 포함하지 않습니다. 모델의 기본 능력과 저장소 자체의 CI·지침을 우선하고, 반복되는 실제 실패가 확인될 때만 새 스킬을 추가합니다.
|
|
12
24
|
|
|
13
25
|
## npm으로 사용자 전역 설치
|
|
14
26
|
|
|
15
|
-
이 패키지는 CLI를 제공하지 않습니다. npm 패키지는
|
|
27
|
+
이 패키지는 CLI를 제공하지 않습니다. npm 패키지는 네 스킬과 Codex 메타데이터를 배포하는 번들입니다.
|
|
16
28
|
|
|
17
29
|
```sh
|
|
18
30
|
npm install -g jhste-skills
|
|
19
31
|
mkdir -p "$HOME/.agents/skills"
|
|
20
|
-
cp -R "$(npm root -g)/jhste-skills/skills
|
|
32
|
+
cp -R "$(npm root -g)/jhste-skills/skills/." "$HOME/.agents/skills/"
|
|
21
33
|
```
|
|
22
34
|
|
|
23
|
-
npm 패키지를 업데이트한 뒤에는 복사 명령을 다시 실행해야 설치된 스킬도 갱신됩니다.
|
|
35
|
+
npm 패키지를 업데이트한 뒤에는 복사 명령을 다시 실행해야 설치된 스킬도 갱신됩니다. Codex가 변경된 스킬을 표시하지 않으면 다시 시작하세요.
|
|
24
36
|
|
|
25
37
|
## 저장소에서 사용자 전역 설치
|
|
26
38
|
|
|
27
39
|
```sh
|
|
28
40
|
mkdir -p "$HOME/.agents/skills"
|
|
29
|
-
cp -R skills
|
|
41
|
+
cp -R skills/. "$HOME/.agents/skills/"
|
|
30
42
|
```
|
|
31
43
|
|
|
32
|
-
|
|
44
|
+
다른 에이전트가 별도 전역 skills 디렉터리를 요구하면 `skills/` 아래의 네 디렉터리를 그 위치로 복사하세요. 이 패키지는 프로젝트별 스킬 복사본을 요구하지 않습니다.
|
|
45
|
+
|
|
46
|
+
## 개발 및 검증
|
|
33
47
|
|
|
34
48
|
```sh
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
npm test
|
|
50
|
+
npm pack --dry-run
|
|
37
51
|
```
|
|
38
52
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
## SOLID-first 규율
|
|
42
|
-
|
|
43
|
-
`jhste-coding`은 작은 실제 코드 변경에 SOLID를 주된 렌즈로 적용합니다.
|
|
44
|
-
|
|
45
|
-
- **단일 책임:** 변경한 단위가 하나의 분명한 일을 하도록 유지합니다.
|
|
46
|
-
- **개방/폐쇄:** 실제 변형이 반복해서 같은 핵심 로직을 바꾸게 만들 때만 확장 지점을 둡니다.
|
|
47
|
-
- **리스코프 치환:** 반환 형태, null 가능성, 오류, 부수 효과 같은 호출자 기대를 보존합니다.
|
|
48
|
-
- **인터페이스 분리:** 필요한 만큼의 작은 계약에 의존합니다.
|
|
49
|
-
- **의존성 역전:** 명확해질 때 비즈니스 규칙과 구체적인 부수 효과를 분리합니다.
|
|
50
|
-
|
|
51
|
-
이 스킬은 코드 작성 중 쓰는 규율이며 더 넓은 프로세스 자동화나 리뷰 파이프라인이 아닙니다.
|
|
53
|
+
릴리스 태그 `v*.*.*`를 푸시하면 GitHub Actions가 테스트 후 npm trusted publishing으로 공개 배포합니다.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jhste-skills",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "A lean GPT-5.6-oriented engineering skill set for coding, decision interviews, GitHub tickets, and domain modeling.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
"url": "git+https://github.com/jhste102lab/jhste-skills.git"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
|
-
"skills
|
|
12
|
+
"skills",
|
|
13
13
|
"README.md",
|
|
14
14
|
"README.en.md",
|
|
15
15
|
"CHANGELOG.md",
|
|
16
16
|
"LICENSE"
|
|
17
17
|
],
|
|
18
18
|
"scripts": {
|
|
19
|
-
"test": "node
|
|
19
|
+
"test": "node scripts/validate-package.mjs"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=18"
|
|
@@ -1,37 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jhste-coding
|
|
3
|
-
description:
|
|
3
|
+
description: Implement features, fix bugs, and refactor repository code with a small, contract-preserving change and relevant validation. Use when the requested outcome requires modifying code. Do not use for read-only analysis, planning, interviewing, issue creation, or domain documentation.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# JHSTE Coding
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Goal
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Deliver the requested behavior with the smallest clear change that fits the repository.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Success criteria
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
- The requested behavior is implemented without unrelated scope.
|
|
15
|
+
- Existing caller-visible contracts remain intact unless the request changes them.
|
|
16
|
+
- Relevant non-destructive validation passes, or the unverified surface and reason are reported.
|
|
17
|
+
- Uncertain, partial, and failed states are not silently treated as success.
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
## Working contract
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
Inspect the affected code, repository guidance, and nearby patterns before editing. Reuse established boundaries and abstractions when they fit. Introduce a new abstraction only when the current change has real variation, repeated logic, or a concrete side-effect boundary that becomes clearer by doing so.
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
- **O — Open/Closed:** add an extension seam when real variation or repeated branching would otherwise keep changing the same core logic. Keep simple branches when they read better.
|
|
22
|
-
- **L — Liskov Substitution:** preserve caller-facing expectations: return shape, nullability, errors, side effects, timing assumptions, and documented behavior.
|
|
23
|
-
- **I — Interface Segregation:** depend on the smallest useful contract. Prefer narrow parameters over broad objects, global context, or large config bags when only a small slice is needed.
|
|
24
|
-
- **D — Dependency Inversion:** keep business rules separate from concrete side effects when that separation makes the code clearer. Make database, network, filesystem, browser, queue, email, payment, clock, environment, and secret boundaries easy to see.
|
|
23
|
+
Treat public return shapes, nullability, errors, side effects, ordering, and documented behavior as contracts. Validate external input at its entry boundary. Keep credentials, sessions, authorization data, and sensitive payloads out of logs and responses.
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
For implementation requests, make in-scope local edits and run the narrowest useful validation without pausing for routine confirmation. Stop before an external write, destructive action, or material expansion of scope unless the user authorized it.
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- Keep secrets, tokens, credentials, cookies, authorization headers, sessions, and raw sensitive payloads out of logs and responses.
|
|
32
|
-
- After changing code, run the narrowest relevant non-destructive validation. If it cannot run, state why; do not imply the change is verified.
|
|
33
|
-
- When adding or changing tests, focus on observable behavior related to the change.
|
|
27
|
+
## Validation
|
|
28
|
+
|
|
29
|
+
Choose checks that exercise the changed behavior: targeted tests first, then applicable type, lint, build, or smoke checks. Do not add a test at an artificial seam merely to claim coverage. Never imply that a check ran when it did not.
|
|
34
30
|
|
|
35
31
|
## Final response
|
|
36
32
|
|
|
37
|
-
Report
|
|
33
|
+
Report the outcome, validation performed, and any material caveat or remaining blocker. Omit generic background and unchanged details.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "JHSTE Coding"
|
|
3
|
+
short_description: "Make scoped code changes with relevant validation"
|
|
4
|
+
default_prompt: "Use $jhste-coding to implement this change with the smallest clear patch and relevant validation."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jhste-domain-modeling
|
|
3
|
+
description: Clarify domain terminology, concept boundaries, and relationships, and optionally maintain a project glossary or ADRs. Use when the user asks to define domain language, resolve conflicting terms, build a glossary, model domain concepts, or record a significant domain decision. Do not invoke for ordinary coding, generic architecture discussion, or incidental naming choices.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# JHSTE Domain Modeling
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Establish precise shared language that matches the intended domain and the behavior implemented by the code.
|
|
11
|
+
|
|
12
|
+
## Investigate
|
|
13
|
+
|
|
14
|
+
Read existing glossary, context-map, ADR, issue, and code conventions before proposing terms. Treat implementation as evidence, not unquestioned truth. Surface contradictions between the user's model, documentation, and code.
|
|
15
|
+
|
|
16
|
+
Clarify one material concept at a time. Use concrete scenarios and edge cases to test boundaries, identities, state transitions, and relationships. Prefer one canonical term per concept and distinguish concepts that only appear similar.
|
|
17
|
+
|
|
18
|
+
Keep the glossary free of implementation details. Keep specifications, task notes, and temporary decisions in their own artifacts.
|
|
19
|
+
|
|
20
|
+
## Analyze versus write
|
|
21
|
+
|
|
22
|
+
Analyze and propose changes by default. Edit `CONTEXT.md`, a repository-equivalent glossary, or an ADR only when the user asks to record, update, or apply the decisions. Follow the repository's existing location and format; create a new convention only with user authorization.
|
|
23
|
+
|
|
24
|
+
Offer an ADR only when the decision is all three:
|
|
25
|
+
|
|
26
|
+
- costly to reverse;
|
|
27
|
+
- surprising without its rationale;
|
|
28
|
+
- the result of a real trade-off between alternatives.
|
|
29
|
+
|
|
30
|
+
Do not create an ADR for routine, temporary, or self-evident choices.
|
|
31
|
+
|
|
32
|
+
## Completion
|
|
33
|
+
|
|
34
|
+
Report:
|
|
35
|
+
|
|
36
|
+
- terms added, changed, rejected, or still ambiguous;
|
|
37
|
+
- scenarios used to test the model;
|
|
38
|
+
- code or document mismatches found;
|
|
39
|
+
- files changed, if writing was authorized;
|
|
40
|
+
- ADR candidates and unresolved decisions that materially block the model.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "JHSTE Domain Modeling"
|
|
3
|
+
short_description: "Clarify domain terms, boundaries, and decisions"
|
|
4
|
+
default_prompt: "Use $jhste-domain-modeling to clarify the domain language and surface any conflicting concepts."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jhste-grill
|
|
3
|
+
description: Interview the user one decision at a time to sharpen or stress-test a plan, product behavior, or design. Use when the user asks to be interviewed, grilled, questioned, or guided through unresolved decisions. Do not invoke merely because an ordinary request has a small ambiguity.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# JHSTE Grill
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Reach enough shared understanding for the user to make or delegate the next layer of work confidently.
|
|
11
|
+
|
|
12
|
+
## Interview
|
|
13
|
+
|
|
14
|
+
Inspect available code, documents, and prior decisions instead of asking the user for discoverable facts. Ask about choices that belong to the user: desired behavior, scope, priorities, compatibility, failure behavior, and consequential trade-offs.
|
|
15
|
+
|
|
16
|
+
Ask one decision question at a time. For each question, provide a recommended answer with its main reason and meaningful trade-off. Follow dependencies between decisions; do not explore branches that cannot affect the outcome.
|
|
17
|
+
|
|
18
|
+
Challenge contradictions and unsupported assumptions directly. Preserve explicit user choices. Do not implement code, publish issues, or edit domain documents as part of this skill alone.
|
|
19
|
+
|
|
20
|
+
## Stop condition
|
|
21
|
+
|
|
22
|
+
Stop when the goal, success criteria, scope, important behavior, and material failure cases are clear enough for the intended next step. Do not continue into reversible preferences or implementation details that the next worker can decide safely.
|
|
23
|
+
|
|
24
|
+
## Outcome
|
|
25
|
+
|
|
26
|
+
Summarize only what the session established:
|
|
27
|
+
|
|
28
|
+
- goal and success criteria;
|
|
29
|
+
- decisions and their reasons;
|
|
30
|
+
- constraints and out-of-scope items;
|
|
31
|
+
- unresolved questions that still block progress;
|
|
32
|
+
- domain terms affected and ADR candidates, when material.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jhste-to-tickets
|
|
3
|
+
description: Turn a defined plan, specification, or conversation into GitHub parent and sub-issues with acceptance criteria and native dependency relationships. Use when the user asks to draft, split, organize, or publish work as GitHub issues or tickets. Do not use for ordinary planning or work whose execution path still requires major investigation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# JHSTE To Tickets
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Create a GitHub-native work graph whose ready issues can be claimed and completed independently by fresh workers.
|
|
11
|
+
|
|
12
|
+
## Resolve context
|
|
13
|
+
|
|
14
|
+
Identify the GitHub repository from the request or current remote. Read any referenced issue, specification, conversation context, repository guidance, and relevant code. Ask only for a missing decision that would materially change scope, issue boundaries, or dependencies.
|
|
15
|
+
|
|
16
|
+
## Draft the work graph
|
|
17
|
+
|
|
18
|
+
Use a parent issue to hold the shared goal, success criteria, decisions, constraints, open questions, and out-of-scope items. Reuse an existing parent when supplied. Otherwise draft one.
|
|
19
|
+
|
|
20
|
+
Split implementation into tracer-bullet issues. Each issue must:
|
|
21
|
+
|
|
22
|
+
- deliver a narrow but complete behavior across the layers it needs;
|
|
23
|
+
- be independently demonstrable or verifiable;
|
|
24
|
+
- fit one fresh worker context;
|
|
25
|
+
- state observable acceptance criteria and relevant validation;
|
|
26
|
+
- preserve only the shared context needed to execute it.
|
|
27
|
+
|
|
28
|
+
Do not create separate database, API, UI, and test issues when none delivers behavior alone. Do not split work that is already safe and reviewable as one issue.
|
|
29
|
+
|
|
30
|
+
For a wide mechanical change that cannot land green as vertical slices, use expand-migrate-contract: introduce the compatible form, migrate bounded batches, then remove the old form.
|
|
31
|
+
|
|
32
|
+
Add a dependency only when the blocked issue cannot start until the blocker completes. Convenience or preferred order is not a dependency. The open, unblocked issues form the execution frontier.
|
|
33
|
+
|
|
34
|
+
## Draft versus publish
|
|
35
|
+
|
|
36
|
+
Draft by default. Present the parent, sub-issues, and dependency edges without writing to GitHub.
|
|
37
|
+
|
|
38
|
+
Publish when the user explicitly asks to create, post, or publish the issues. That request authorizes these GitHub writes; it does not authorize unrelated repository changes. Create the parent and sub-issues, use GitHub's native parent and blocked-by relationships, then return their links and the initial frontier.
|
|
39
|
+
|
|
40
|
+
When native relationships are unavailable, report the limitation before falling back to references in issue bodies.
|
|
41
|
+
|
|
42
|
+
## Issue shape
|
|
43
|
+
|
|
44
|
+
Each sub-issue should contain:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
## Outcome
|
|
48
|
+
|
|
49
|
+
## Acceptance criteria
|
|
50
|
+
- [ ] Observable result
|
|
51
|
+
- [ ] Relevant validation
|
|
52
|
+
|
|
53
|
+
## Context
|
|
54
|
+
|
|
55
|
+
## Coordination
|
|
56
|
+
- Blocked by: native GitHub relationship, or None
|
|
57
|
+
- Integration point: branch, contract, or artifact when known
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Avoid speculative file paths, implementation recipes, and code snippets that will go stale. Include a prototype-derived shape only when it records a decision more precisely than prose.
|
|
61
|
+
|
|
62
|
+
## Completion
|
|
63
|
+
|
|
64
|
+
Before finishing, verify that every issue has a clear outcome, every dependency is necessary, and at least one frontier issue exists unless an explicit external blocker prevents all work.
|