okstra 0.36.0 → 0.36.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.
- package/README.kr.md +3 -5
- package/README.md +3 -5
- package/docs/project-structure-overview.md +2 -7
- package/docs/superpowers/plans/2026-05-24-implementation-lead-context-slimming.md +1700 -0
- package/package.json +1 -1
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/SKILL.md +18 -5
- package/runtime/agents/workers/claude-worker.md +5 -6
- package/runtime/agents/workers/codex-worker.md +10 -9
- package/runtime/agents/workers/gemini-worker.md +7 -6
- package/runtime/agents/workers/report-writer-worker.md +13 -11
- package/runtime/prompts/launch.template.md +1 -0
- package/runtime/prompts/profiles/_implementation-deliverable.md +53 -0
- package/runtime/prompts/profiles/_implementation-executor.md +60 -0
- package/runtime/prompts/profiles/_implementation-verifier.md +76 -0
- package/runtime/prompts/profiles/implementation.md +27 -134
- package/runtime/python/okstra_ctl/paths.py +3 -0
- package/runtime/python/okstra_ctl/render.py +19 -5
- package/runtime/python/okstra_ctl/render_final_report.py +4 -1
- package/runtime/python/okstra_ctl/run.py +7 -1
- package/runtime/python/okstra_ctl/session.py +65 -7
- package/runtime/python/okstra_token_usage/report.py +6 -2
- package/runtime/skills/okstra-brief/SKILL.md +2 -211
- package/runtime/skills/okstra-inspect/SKILL.md +581 -0
- package/runtime/skills/okstra-run/SKILL.md +3 -3
- package/runtime/skills/okstra-schedule/SKILL.md +10 -153
- package/runtime/skills/okstra-setup/SKILL.md +1 -1
- package/runtime/skills/okstra-team-contract/SKILL.md +15 -106
- package/runtime/templates/reports/brief.template.md +204 -0
- package/runtime/templates/reports/schedule.template.md +12 -3
- package/runtime/templates/worker-prompt-preamble.md +108 -0
- package/src/uninstall.mjs +7 -3
- package/runtime/prompts/profiles/kr/_common-contract.md +0 -92
- package/runtime/prompts/profiles/kr/error-analysis.md +0 -36
- package/runtime/prompts/profiles/kr/final-verification.md +0 -48
- package/runtime/prompts/profiles/kr/implementation-planning.md +0 -90
- package/runtime/prompts/profiles/kr/implementation.md +0 -144
- package/runtime/prompts/profiles/kr/improvement-discovery.md +0 -42
- package/runtime/prompts/profiles/kr/release-handoff.md +0 -104
- package/runtime/prompts/profiles/kr/requirements-discovery.md +0 -42
- package/runtime/skills/okstra-history/SKILL.md +0 -165
- package/runtime/skills/okstra-logs/SKILL.md +0 -173
- package/runtime/skills/okstra-report-finder/SKILL.md +0 -111
- package/runtime/skills/okstra-status/SKILL.md +0 -246
- package/runtime/skills/okstra-time-summary/SKILL.md +0 -172
|
@@ -676,218 +676,9 @@ Use the same template per brief file. In tracker mode producing a parent
|
|
|
676
676
|
plus N children, you write **N+1 files** (each carries only its own Source
|
|
677
677
|
Material).
|
|
678
678
|
|
|
679
|
-
|
|
680
|
-
fabricating content. (The outer fence uses 4 backticks so it does not
|
|
681
|
-
collide with the inner 3-backtick code block.)
|
|
679
|
+
[`templates/reports/brief.template.md`](../../templates/reports/brief.template.md) is the byte-for-byte SSOT for the brief shape — frontmatter keys, top-header blockquote, section ordering, and inline `<!-- author guidance -->` HTML comments. Render that file with the per-brief values substituted; leave any section's body as `_(none)_` rather than fabricating content. Preserve the template's HTML comments verbatim (they are part of the contract) but do NOT promote them to body prose.
|
|
682
680
|
|
|
683
|
-
|
|
684
|
-
---
|
|
685
|
-
type: brief
|
|
686
|
-
brief-id: <ticket-id>-<file-title> # equals the filename stem
|
|
687
|
-
parent-id: self # always `self` at root; child briefs use parent's brief-id
|
|
688
|
-
ticket-id: <LIN-1234 | PROJ-42 | gh-repo-123 | notion-abcdef12 | "">
|
|
689
|
-
source-type: <file | linear | jira | github | notion | url | user-input>
|
|
690
|
-
task-group: <task-group>
|
|
691
|
-
depth: 0 # 0=parent/single, 1=child, 2=grandchild, ...
|
|
692
|
-
created: <YYYY-MM-DD>
|
|
693
|
-
generator: okstra-brief
|
|
694
|
-
reporter-confirmations: <complete | partial | pending | skipped> # set by Step 6.5
|
|
695
|
-
# codebase-scan variant frontmatter (omit for reporter-input briefs):
|
|
696
|
-
scope: <reporter-input | codebase> # 'codebase' for codebase-scan variant; omit for reporter-input variant
|
|
697
|
-
priority-lenses: [] # codebase-scan only: lens enum subset, size 1..4
|
|
698
|
-
scan-scope: [] # codebase-scan only: 1+ paths
|
|
699
|
-
out-of-scope: [] # codebase-scan only: optional
|
|
700
|
-
candidate-cap: 8 # codebase-scan only: 1..12, default 8
|
|
701
|
-
---
|
|
702
|
-
|
|
703
|
-
# Task Brief: <task_group>/<filename-without-ext>
|
|
704
|
-
|
|
705
|
-
> Generated: okstra-brief · <YYYY-MM-DD>
|
|
706
|
-
> Source type: <file | linear | jira | github | notion | url | user-input>
|
|
707
|
-
> Tracker key (if any): <LIN-1234 | PROJ-42 | gh-repo-123 | notion-abcdef12>
|
|
708
|
-
> Parent brief (child briefs only): <relative path>
|
|
709
|
-
> Recommended next phase: <requirements-discovery | error-analysis> ← from Step 6
|
|
710
|
-
> Handoff contract: see `prompts/profiles/_common-contract.md` § "Brief handoff contract"
|
|
711
|
-
|
|
712
|
-
## Source Material
|
|
713
|
-
|
|
714
|
-
<!-- author guidance — strip out at fill-in time:
|
|
715
|
-
Paste each source separately and as-is. No paraphrasing, summarizing, or
|
|
716
|
-
restructuring. Format conversion (e.g. Jira ADF → Markdown) is allowed and
|
|
717
|
-
must be annotated in the header meta. Heading was originally
|
|
718
|
-
"Source Material (verbatim — do not modify)" — the parenthetical is a
|
|
719
|
-
reviewer note, not body text.
|
|
720
|
-
-->
|
|
721
|
-
|
|
722
|
-
### Source 1 — <type: file | linear | jira | github | notion | url | user-input>
|
|
723
|
-
|
|
724
|
-
- ref: <abs file path | LIN-1234 | https://... | "conversation synthesis">
|
|
725
|
-
- fetched-via: <Read | mcp__linear__getIssue | mcp__notion__... | gh issue view | WebFetch | user-paste>
|
|
726
|
-
- fetched-at: <YYYY-MM-DD HH:MM>
|
|
727
|
-
- format: <as-is | "Jira ADF → Markdown (semantics preserved)" | "tool-truncated — missing body requested from reporter">
|
|
728
|
-
|
|
729
|
-
```
|
|
730
|
-
<Paste the raw source here without changing a single character.>
|
|
731
|
-
```
|
|
732
|
-
|
|
733
|
-
<!-- Repeat `### Source N — …` blocks as needed. -->
|
|
734
|
-
|
|
735
|
-
## Context
|
|
736
|
-
|
|
737
|
-
<Background / scope / why now. If self-evident from Source Material, quote
|
|
738
|
-
it briefly and stop. Use the blockquote below when augmentation is needed.>
|
|
739
|
-
|
|
740
|
-
> augmented: <label> — <Interpretation added by the skill or user.>
|
|
741
|
-
|
|
742
|
-
<!-- label MUST be one of: `evidence-link` / `format-conversion` /
|
|
743
|
-
`terminology-mapping` / `intent-inference`. Do NOT add any extra
|
|
744
|
-
interpretation outside the `> augmented:` blockquote. -->
|
|
745
|
-
|
|
746
|
-
## Problem / Symptom
|
|
747
|
-
|
|
748
|
-
<Current state. For bugs: repro / observed / expected. For greenfield: gap
|
|
749
|
-
between current and desired.>
|
|
750
|
-
|
|
751
|
-
<!-- Same source-quote + `> augmented:` rule as the Context section. -->
|
|
752
|
-
|
|
753
|
-
## Desired Outcome
|
|
754
|
-
|
|
755
|
-
<Shape of success.>
|
|
756
|
-
|
|
757
|
-
<!-- Do NOT prescribe a solution — that belongs to implementation-planning. -->
|
|
758
|
-
|
|
759
|
-
## Constraints
|
|
760
|
-
|
|
761
|
-
<Deadlines, compatibility, technical/operational limits. Use _(none)_ if
|
|
762
|
-
none.>
|
|
763
|
-
|
|
764
|
-
## Scan Scope
|
|
765
|
-
|
|
766
|
-
<!-- codebase-scan variant only — omit this section for reporter-input briefs. -->
|
|
767
|
-
<!-- Author guidance: one bullet per `scan-scope` path with a short description of what lives there. -->
|
|
768
|
-
|
|
769
|
-
- <path>: <one-line description of contents / responsibility>
|
|
770
|
-
|
|
771
|
-
## Priority Lenses
|
|
772
|
-
|
|
773
|
-
<!-- codebase-scan variant only — omit this section for reporter-input briefs. -->
|
|
774
|
-
<!-- Author guidance: one bullet per priority lens explaining why it is a priority for THIS scope. -->
|
|
775
|
-
|
|
776
|
-
- <lens>: <short rationale tying this lens to the scope's risk surface>
|
|
777
|
-
|
|
778
|
-
## Related Artifacts
|
|
779
|
-
|
|
780
|
-
- <file path / URL / issue / prior task-key>
|
|
781
|
-
|
|
782
|
-
## Open Questions
|
|
783
|
-
|
|
784
|
-
<!-- author guidance — strip out at fill-in time:
|
|
785
|
-
Prefix every row with one of these signals so the next phase knows how to
|
|
786
|
-
handle it. Free-form rows are allowed only as `general:`.
|
|
787
|
-
|
|
788
|
-
Allowed signals:
|
|
789
|
-
- `general: <unresolved question the user flagged>`
|
|
790
|
-
- `terminology: <reporter word> — needs canonical resolution against
|
|
791
|
-
<PROJECT_ROOT>/.project-docs/okstra/glossary.md`
|
|
792
|
-
- `intent-check: <restated inference> — confirm with reporter`
|
|
793
|
-
(auto-paired with every `intent-inference` augmentation)
|
|
794
|
-
- `conversion-block: <reporter statement> — could not be mapped to project
|
|
795
|
-
vocabulary; reporter query required`
|
|
796
|
-
- `adr-candidate: <topic>` — signal only; `implementation-planning`
|
|
797
|
-
evaluates and, if accepted, drafts a decision file at
|
|
798
|
-
`<PROJECT_ROOT>/.project-docs/okstra/decisions/<NNNN>-<slug>.md`.
|
|
799
|
-
|
|
800
|
-
Use `_(none)_` only if every signal is empty. `intent-check:` and
|
|
801
|
-
`conversion-block:` rows that are answered in Step 6.5 are NOT removed
|
|
802
|
-
from this list — they receive a `[CONFIRMED <YYYY-MM-DD> → RC-N]`
|
|
803
|
-
marker that links to the corresponding entry under
|
|
804
|
-
`## Reporter Confirmations`.
|
|
805
|
-
-->
|
|
806
|
-
|
|
807
|
-
- <fill in one row per signal, or replace with `_(none)_`>
|
|
808
|
-
|
|
809
|
-
## Reporter Confirmations
|
|
810
|
-
|
|
811
|
-
<!-- Populated by Step 6.5. Each subsection records one reporter answer
|
|
812
|
-
verbatim, with a link back to the originating `Open Questions` row. -->
|
|
813
|
-
|
|
814
|
-
_(none — pending or skipped)_
|
|
815
|
-
|
|
816
|
-
<!-- when populated, the shape is:
|
|
817
|
-
### RC-1 — <intent-check: or conversion-block: row id / topic>
|
|
818
|
-
- asked: <YYYY-MM-DD HH:MM>
|
|
819
|
-
- linked-row: `<exact Open Questions row text>`
|
|
820
|
-
- answer (verbatim):
|
|
821
|
-
|
|
822
|
-
> <reporter's answer, byte-for-byte>
|
|
823
|
-
-->
|
|
824
|
-
|
|
825
|
-
## Augmentation
|
|
826
|
-
|
|
827
|
-
<!-- author guidance — strip out at fill-in time:
|
|
828
|
-
Cross-references / interpretation / context added by the user or skill that
|
|
829
|
-
is not in the original source. May be empty. Keep this section visually
|
|
830
|
-
separated from Source Material — never inline it inside Source Material.
|
|
831
|
-
|
|
832
|
-
Every entry below must start with one of the four labels:
|
|
833
|
-
`evidence-link` / `format-conversion` / `terminology-mapping` /
|
|
834
|
-
`intent-inference`. Unlabelled entries are forbidden.
|
|
835
|
-
-->
|
|
836
|
-
|
|
837
|
-
### Domain alignment
|
|
838
|
-
|
|
839
|
-
<!-- author guidance — strip out at fill-in time:
|
|
840
|
-
Observations from Step 3b and the outcome of Step 4.5 (glossary applied
|
|
841
|
-
vs. skipped). The actual glossary edits live in
|
|
842
|
-
`<PROJECT_ROOT>/.project-docs/okstra/glossary.md` when applied; this
|
|
843
|
-
section records what happened. Decision candidates are NOT recorded here —
|
|
844
|
-
they flow through `Open Questions` as `adr-candidate:` rows for
|
|
845
|
-
`implementation-planning` to evaluate (and, if accepted, draft into
|
|
846
|
-
`<PROJECT_ROOT>/.project-docs/okstra/decisions/`).
|
|
847
|
-
|
|
848
|
-
Allowed entry shapes:
|
|
849
|
-
- `terminology-mapping: <reporter word> → <okstra glossary canonical>` —
|
|
850
|
-
routine glossary alignment, paired with `terminology:` in Open Questions
|
|
851
|
-
when unresolved.
|
|
852
|
-
- `terminology-mapping: applied glossary: <term> → <PROJECT_ROOT>/.project-docs/okstra/glossary.md`
|
|
853
|
-
- `terminology-mapping: skipped glossary: <term> = <definition>` —
|
|
854
|
-
Step 4.5 outcomes.
|
|
855
|
-
Use `_(none)_` if every alignment entry is empty.
|
|
856
|
-
-->
|
|
857
|
-
|
|
858
|
-
- <fill in one entry per alignment, or replace with `_(none)_`>
|
|
859
|
-
|
|
860
|
-
### Evidence links (file / symbol resolution)
|
|
861
|
-
|
|
862
|
-
<!-- Allowed entry shapes:
|
|
863
|
-
`evidence-link: <reporter phrase> → <relative path>:<line>` or
|
|
864
|
-
`evidence-link: <reporter phrase> → <symbol> in <relative path>`.
|
|
865
|
-
Use `_(none)_` if none. -->
|
|
866
|
-
|
|
867
|
-
- <fill in one entry per link, or replace with `_(none)_`>
|
|
868
|
-
|
|
869
|
-
### Intent inferences
|
|
870
|
-
|
|
871
|
-
<!-- Every entry here is an unverified hypothesis. Each one MUST have a
|
|
872
|
-
paired `intent-check:` row under Open Questions.
|
|
873
|
-
|
|
874
|
-
Allowed entry shape:
|
|
875
|
-
`intent-inference: <reporter phrase> → <qualitative restatement>`
|
|
876
|
-
(qualitative only — never invent numeric thresholds).
|
|
877
|
-
Use `_(none)_` if none. -->
|
|
878
|
-
|
|
879
|
-
- <fill in one entry per inference, or replace with `_(none)_`>
|
|
880
|
-
|
|
881
|
-
### Format conversions
|
|
882
|
-
|
|
883
|
-
<!-- Allowed entry shape:
|
|
884
|
-
`format-conversion: <ref> — <e.g. Jira ADF → Markdown, semantics preserved>`.
|
|
885
|
-
Use `_(none)_` if none. -->
|
|
886
|
-
|
|
887
|
-
- <fill in one entry per conversion, or replace with `_(none)_`>
|
|
888
|
-
````
|
|
889
|
-
|
|
890
|
-
**Variant note:** The template above is the canonical reporter-input shape. For the codebase-scan variant (`scope: codebase` in frontmatter), OMIT the `## Source Material` and `## Problem / Symptom` headings entirely — do NOT include them with `_(none)_` bodies. Instead, ADD `## Scan Scope` and `## Priority Lenses` sections (already present in the template above, marked with HTML comments). The remaining sections (Context / Desired Outcome / Constraints / Related Artifacts / Open Questions / Reporter Confirmations / Augmentation) apply to both variants.
|
|
681
|
+
**Variant note:** The template file is the canonical reporter-input shape. For the codebase-scan variant (`scope: codebase` in frontmatter), OMIT the `## Source Material` and `## Problem / Symptom` headings entirely — do NOT include them with `_(none)_` bodies. Instead, KEEP the `## Scan Scope` and `## Priority Lenses` sections (already present in the template file, marked with HTML comments). The remaining sections (Context / Desired Outcome / Constraints / Related Artifacts / Open Questions / Reporter Confirmations / Augmentation) apply to both variants.
|
|
891
682
|
|
|
892
683
|
### Required sections by variant
|
|
893
684
|
|