deuk-agent-rule 1.0.13 → 2.2.1
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 +139 -85
- package/README.ko.md +125 -106
- package/README.ko.pdf +0 -0
- package/README.md +123 -106
- package/bundle/.cursorrules +7 -0
- package/bundle/AGENTS.md +87 -96
- package/bundle/rules/delivery-and-parallel-work.mdc +26 -26
- package/bundle/rules/git-commit.mdc +18 -24
- package/bundle/rules/multi-ai-workflow.mdc +76 -26
- package/package.json +4 -3
- package/scripts/cli-args.mjs +43 -0
- package/scripts/cli-init-commands.mjs +65 -0
- package/scripts/cli-init-logic.mjs +21 -0
- package/scripts/cli-prompts.mjs +123 -0
- package/scripts/cli-ticket-commands.mjs +159 -0
- package/scripts/cli-ticket-logic.mjs +229 -0
- package/scripts/cli-utils.mjs +82 -0
- package/scripts/cli.mjs +110 -441
- package/scripts/merge-logic.mjs +365 -195
- package/scripts/sync-bundle.mjs +50 -44
- package/scripts/sync-oss.mjs +10 -9
package/README.md
CHANGED
|
@@ -1,106 +1,123 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
|
81
|
-
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
##
|
|
105
|
-
|
|
106
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<br />
|
|
3
|
+
<h1>DeukAgentRules</h1>
|
|
4
|
+
<p>High-Signal Encoding & Rule Standardization Engine</p>
|
|
5
|
+
<p>Part of the <a href="https://deukpack.app">Deuk Family</a> ecosystem.</p>
|
|
6
|
+
</div>
|
|
7
|
+
|
|
8
|
+
<div align="center">
|
|
9
|
+
<a href="https://www.npmjs.com/package/deuk-agent-rule"><img src="https://img.shields.io/npm/v/deuk-agent-rule.svg?color=black&style=flat-square" alt="NPM Version" /></a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/deuk-agent-rule"><img src="https://img.shields.io/npm/dm/deuk-agent-rule.svg?color=blue&style=flat-square" alt="NPM Downloads" /></a>
|
|
11
|
+
<a href="https://github.com/joygram/DeukAgentRules"><img src="https://img.shields.io/github/stars/joygram/DeukAgentRules.svg?style=flat-square&color=orange" alt="GitHub Stars" /></a>
|
|
12
|
+
<a href="https://github.com/joygram/DeukAgentRules/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/deuk-agent-rule.svg?style=flat-square" alt="License" /></a>
|
|
13
|
+
<br /><br />
|
|
14
|
+
<a href="https://github.com/joygram/DeukAgentRules/blob/master/README.ko.md">한국어 (Korean)</a>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
***
|
|
18
|
+
|
|
19
|
+
## Abstract
|
|
20
|
+
|
|
21
|
+
DeukAgentRules defines a project-agnostic rule architecture for AI engineering agents (Cursor, GitHub Copilot, Gemini/Antigravity, Claude, Windsurf, JetBrains AI). It separates persistent workflow memory from session context, reducing recurring prompt loads per session.
|
|
22
|
+
|
|
23
|
+
> Why DeukAgentRules?
|
|
24
|
+
> The Ticket-First Workflow reduces recurring context loads into a single focused topic file per session, enabling handovers between different AI tools without re-explaining the repository.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
Initialize the rule system and set up the local workspace in one step:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx deuk-agent-rule init
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- Interactive Setup: On the first run, the CLI guides you to select your primary stack and the AI agents you use. (See the System Selection Guide for a detailed list of available stacks and tools).
|
|
37
|
+
- Safe Updates: Subsequent runs safely append necessary templates without touching your custom extensions. Use --interactive to reconfigure.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## The Ticket-First Workflow
|
|
42
|
+
|
|
43
|
+
Multiple AI agents share context through a single Markdown ticket, reducing per-session prompt overhead.
|
|
44
|
+
|
|
45
|
+
### The 6-Phase Workflow
|
|
46
|
+
|
|
47
|
+
| Phase | Actor | Action |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| 1. Explore & Plan | Reasoning AI | Analyze codebase, propose implementation plan |
|
|
50
|
+
| 2. Decide | User | Review and approve the plan |
|
|
51
|
+
| 3. Ticket (Registration) | Reasoning AI | Write approved plan to .deuk-agent-ticket/ |
|
|
52
|
+
| 4. Execute | IDE Agent | Read ticket, code strictly within scope |
|
|
53
|
+
| 5. Post-Test Risk Analysis | IDE Agent | Mandatory artifact risk analysis after testing |
|
|
54
|
+
| 6. Report & Close | User + Agent | Review risk report, then npx deuk-agent-rule ticket close --latest |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### Detailed Workflow Walkthrough
|
|
59
|
+
|
|
60
|
+
Phase 1: Explore & Plan
|
|
61
|
+
```
|
|
62
|
+
[User] "Analyze storage module"
|
|
63
|
+
[Agent] (Analyzes codebase, proposes direction)
|
|
64
|
+
[User] "Plan and design for the analyzed content."
|
|
65
|
+
[Agent] (Saves ticket to .deuk-agent-ticket/main/storage-20260406.md)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Phase 2: Execution & Verification
|
|
69
|
+
```
|
|
70
|
+
[User] "Proceed" (or "Proceed with [Ticket #]")
|
|
71
|
+
[Agent] (Reads the ticket, implements changes, self-checks, and reports)
|
|
72
|
+
[User] "Verify issues, defects, and potential errors."
|
|
73
|
+
[Agent] (Runs tests, confirms compliance and finds defects)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### Keyword-Based Prompt Examples
|
|
79
|
+
|
|
80
|
+
| Intent | Keyword Input |
|
|
81
|
+
|---|---|
|
|
82
|
+
| Analysis | Analyze [Topic/Module] |
|
|
83
|
+
| Plan | Plan and design for the analyzed content. |
|
|
84
|
+
| Proceed | Proceed [Ticket #] (or latest if omitted) |
|
|
85
|
+
| Verify | Verify issues, defects, and potential errors. |
|
|
86
|
+
| Check | /ticket |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### CLI Reference (Optional)
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx deuk-agent-rule ticket create --topic login-api --project MyProject --content "## Task: ..."
|
|
94
|
+
npx deuk-agent-rule ticket list
|
|
95
|
+
npx deuk-agent-rule ticket close --latest
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
(Ticket Tutorial: docs/ticket-tutorial.md)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Architecture & Configuration (How It Works)
|
|
105
|
+
|
|
106
|
+
The CLI supports advanced parameters for CI environments and explicit structural control, utilizing a non-destructive injection mechanism to avoid user conflicts.
|
|
107
|
+
For a detailed technical overview of how we safely sandbox injected rules, see the How It Works Guide (docs/how-it-works.md).
|
|
108
|
+
|
|
109
|
+
### Core Configuration
|
|
110
|
+
|
|
111
|
+
| Flag | Purpose |
|
|
112
|
+
|------|---------|
|
|
113
|
+
| --non-interactive | CI/Headless mode; applies defaults/saved config without prompting |
|
|
114
|
+
| --tag <id> | Overrides the default marker region (<!-- <id>:begin -->) |
|
|
115
|
+
| --agents inject | Smart injection into existing AGENTS.md (or skip, overwrite) |
|
|
116
|
+
| --rules prefix | Updates .cursor/rules via intelligent file prefixing |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## License & Ecosystem
|
|
121
|
+
|
|
122
|
+
Part of the DeukPack Ecosystem. Licensed under Apache-2.0.
|
|
123
|
+
For issues, contributions, and community discussions, visit the GitHub Repository (https://github.com/joygram/DeukAgentRules).
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Cursor — AGENTS.md is authoritative
|
|
2
|
+
|
|
3
|
+
You MUST read and strictly follow the workflows, rules, and ticket formats defined in AGENTS.md at the repository root before writing or modifying any code. If AGENTS.md is not yet in your context for this task, open it and use it.
|
|
4
|
+
|
|
5
|
+
Precedence: Repository root AGENTS.md defines project rules (structure, constraints, tickets). .cursor/rules/*.mdc files add editor-specific behavior (for example token discipline and multi-tool handoff). If anything conflicts, follow AGENTS.md for project facts and tickets.
|
|
6
|
+
|
|
7
|
+
Do not assume stacks or repo layouts (microservices, api-gateway, OpenAPI-only workflows) unless they appear in this repository and AGENTS.md.
|
package/bundle/AGENTS.md
CHANGED
|
@@ -1,96 +1,87 @@
|
|
|
1
|
-
# Project Agent Rules
|
|
2
|
-
|
|
3
|
-
## Identity
|
|
4
|
-
|
|
5
|
-
Senior software engineer. Correctness, minimal diffs, safety.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
###
|
|
62
|
-
- [
|
|
63
|
-
###
|
|
64
|
-
- [
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
- **Default file for the next agent:** `DeukAgentRules/handoff/LATEST.md`
|
|
89
|
-
|
|
90
|
-
Add **`DeukAgentRules/handoff/`** to the **consumer** repository’s `.gitignore` unless you intentionally version handoffs.
|
|
91
|
-
|
|
92
|
-
**Agent guidance (canonical path strings):** Rules and `AGENTS.md` in the consumer repo should tell agents to open **`DeukAgentRules/handoff/LATEST.md`** when it exists — not only a pasted chat block — so other tools and sessions can resume from the same clone.
|
|
93
|
-
|
|
94
|
-
**Producing handoffs:** When saving a durable handoff for another agent, write the **Handoff format** body to **`DeukAgentRules/handoff/LATEST.md`** (or a dated file in that folder) and, in chat, include **one line** with the full path, e.g. `Path: \`DeukAgentRules/handoff/LATEST.md\`` using **repo-relative paths** (no `file://` URLs).
|
|
95
|
-
|
|
96
|
-
**Handoff links (full path):** Whenever you **link** or **cite** a persisted handoff file — in **Handoff format** sections, chat, or Markdown — use the **full path from the repository root** (for example `DeukAgentRules/handoff/LATEST.md`, `project_i/_ref_data/deuk_define/reports/REF_DATA_DEUK_TRANSITION.md`). Do **not** use a **bare filename** (`LATEST.md` alone) or an ambiguous partial path. In monorepos, include every prefix segment so the path is unique in the workspace. Markdown: put the full path in the link target, e.g. `[handoff](DeukAgentRules/handoff/LATEST.md)` (repo-relative).
|
|
1
|
+
# Project Agent Rules
|
|
2
|
+
|
|
3
|
+
## Identity & Highest Priority
|
|
4
|
+
|
|
5
|
+
Senior software engineer. Correctness, minimal diffs, safety.
|
|
6
|
+
HIGHEST PRIORITY: Agents MUST NEVER use expressions that emphasize dramatic effects or imply absolute completeness/perfection when writing any document or ticket. Keep all output strictly factual, calm, and dry.
|
|
7
|
+
HARD RULE: Never use Markdown word emphasis (bold **, italic *, etc.) in any generated content. Keep the text uniformly plain.
|
|
8
|
+
|
|
9
|
+
## Definitive Workflow (Explore -> Decide -> Execute)
|
|
10
|
+
|
|
11
|
+
1. Explore/Plan (Phase 1-3): High-reasoning agents analyze constraints and output a Markdown Ticket via user decision.
|
|
12
|
+
2. Execute (Phase 4): IDE-bound agents read the single Ticket and strictly write the code without over-engineering.
|
|
13
|
+
3. Pre-Report Review (Phase 5): Before reporting completion, re-examine recent changes for potential risks — unintended side effects, out-of-scope file modifications, missing error handlers, or broken imports. Document any identified risk before reporting; do not suppress it.
|
|
14
|
+
4. Verify & Close (Phase 6): Test execution results. If verified, close the ticket (npx deuk-agent-rule ticket close). If failed, revert to Phase 1.
|
|
15
|
+
|
|
16
|
+
- Priority Ticket Generation: When encountering a new issue or scope creep, explicitly create a fresh Ticket before coding to prevent context window degradation.
|
|
17
|
+
- Slash Commands & Selection UI: Recognize /ticket [keyword] to query active tickets. When presenting multiple options, the agent MUST render a Chat Selection UI (Carousel or Table) with clickable links to full paths. Do not simply output text or CLI instructions.
|
|
18
|
+
|
|
19
|
+
## Communication (Tone & Style)
|
|
20
|
+
|
|
21
|
+
- Strict Tone Constraints: Calm, Senior, Analytical, High-Signal.
|
|
22
|
+
- No Exaggeration (Crucial): Absolutely no sensational language, fake satisfaction, or overly cheerful filler. State facts and results dryly. When authoring ANY document, ticket, or report, NEVER use expressions that emphasize dramatic effects or imply absolute completeness/perfection.
|
|
23
|
+
- HARD RULE: No Markdown word emphasis (bold, italic) in any communication or documentation.
|
|
24
|
+
- Korean Language Preference: When conversing in Korean, use concise polite endings (-요 style) rather than rigid declarative or formal military styles (-다/까 style). Keep it professional but accessible.
|
|
25
|
+
|
|
26
|
+
## Code Quality
|
|
27
|
+
|
|
28
|
+
- Minimal diffs: keep existing conventions, public API, and serialized/config shapes stable unless the task requires a deliberate change.
|
|
29
|
+
- Hot paths (per-frame loops, tight inner loops): avoid unnecessary allocation; cache lookups where appropriate.
|
|
30
|
+
- Prefer one clear solution; do not list alternatives without applying one.
|
|
31
|
+
- Follow your stack’s official guidance for editor-only code, time steps, and serialization migrations.
|
|
32
|
+
|
|
33
|
+
## Documentation
|
|
34
|
+
|
|
35
|
+
- User-facing docs: product behavior, compatibility, packaging, and security — not internal runbooks pasted verbatim.
|
|
36
|
+
- Changelog entries: factual, consumer-relevant changes only.
|
|
37
|
+
|
|
38
|
+
## Cost-effective sessions
|
|
39
|
+
|
|
40
|
+
- Prefer short, high-signal answers and patches; avoid filler, long tutorials, and repeating context the user already has unless they ask for depth.
|
|
41
|
+
- One clear objective per session or turn when practical; do not expand scope into unrelated refactors.
|
|
42
|
+
- For read-only or exploratory tasks, summarize and point to paths instead of pasting large blobs.
|
|
43
|
+
|
|
44
|
+
## Delivery, portfolio, and parallel work
|
|
45
|
+
|
|
46
|
+
- Prefer one PR or session outcome = one vertical slice: integrated, buildable, and demo-able for that slice unless the user explicitly requests a broad-only refactor.
|
|
47
|
+
- When the user signals portfolio / demo / ship-now priority, narrow work to visible outcomes first; defer wide cleanups to a separate scoped task unless blocking.
|
|
48
|
+
- Under parallel branches or shared ownership, keep edits small and bounded on hot shared paths; respect named lane or directory ownership when given; flag high-conflict paths instead of silently expanding scope.
|
|
49
|
+
- Default to minimal refactor: satisfy the task with the smallest structural change; split optional large refactors into a follow-up ticket instead of bundling them.
|
|
50
|
+
|
|
51
|
+
## IDE Branding
|
|
52
|
+
|
|
53
|
+
No editor or vendor tool branding in code, docs, README, commits, or published artifacts.
|
|
54
|
+
|
|
55
|
+
## Ticket format
|
|
56
|
+
|
|
57
|
+
When handing work between tools or people, use:
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## Task: [title]
|
|
61
|
+
### Files to modify
|
|
62
|
+
- path/to/file: [what to change]
|
|
63
|
+
### Design decisions
|
|
64
|
+
- [decision]
|
|
65
|
+
### Constraints
|
|
66
|
+
- [constraint]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Ticket persistence (internal implementation docs)
|
|
70
|
+
|
|
71
|
+
Default local directory: npx deuk-agent-rule init creates .deuk-agent-ticket/ at the repo root and appends it to .gitignore so persisted tickets are not committed by default. Remove or adjust that ignore rule if your team versions tickets in git.
|
|
72
|
+
|
|
73
|
+
When a ticket should outlive the chat — for example the user asks to save it, it is the authoritative spec for a follow-up session or another implementer, or the team keeps structured tickets in-repo — write it as a Markdown file under internal implementation documentation (implementation notes, not end-user or marketing docs). Prefer the unified .deuk-agent-ticket/ directory, where both the index (TICKET_LIST.md) and the topic files are centralized. Otherwise use an existing convention such as <product-or-feature>/internal/*.md or docs/internal/*.md. If the user names a path, use it. Reuse the same section structure as Ticket format above. If only an inline paste is needed, skip creating a file unless the user asks to save.
|
|
74
|
+
|
|
75
|
+
Plan-style UI (optional): Some editors surface plan documents separately from normal Markdown. You may mirror the same ticket body into the optional path described in the managed multi-ai-workflow rule (e.g. .cursor/plans/deuk-ticket.plan.md) while keeping the canonical file under .deuk-agent-ticket/. If both exist, keep them in sync.
|
|
76
|
+
|
|
77
|
+
After saving (chat): Include one dedicated line with the full repo-root-relative path, e.g. Path: .deuk-agent-ticket/sub/container-unified-20260329-120000.md — not only a bare filename inside prose.
|
|
78
|
+
|
|
79
|
+
Optional last line in the file: e.g. <!-- Ticket (repo-relative): path/from/root.md --> as an HTML comment on the very last line.
|
|
80
|
+
|
|
81
|
+
Language: Write the body of persisted tickets in the user’s language — the language they use in the conversation (or their stated preference) — unless they ask for a specific language (for example English-only for an external partner).
|
|
82
|
+
|
|
83
|
+
Before substantive work: Before implementation, fixes, or other non-trivial repo changes, check persisted tickets in the locations above (including .deuk-agent-ticket/ and any project-specific internal paths). If the file .deuk-agent-ticket/TICKET_LIST.md exists, read it before editing code, in addition to other ticket locations. Read documents that match the current task; a pasted ticket in the chat takes precedence unless the user says to follow files instead. Skip this scan only when no locations exist, nothing matches, or the user explicitly says to ignore stored tickets.
|
|
84
|
+
|
|
85
|
+
Producing tickets: When saving a durable ticket for another agent, write the Ticket format body to topic files under .deuk-agent-ticket/, then update .deuk-agent-ticket/TICKET_LIST.md as index (or use CLI ticket create). In chat, include one line with the full path, e.g. Path: .deuk-agent-ticket/sub/container-unified-20260329-120000.md using repo-relative paths (no file:// URLs).
|
|
86
|
+
|
|
87
|
+
Ticket links (full path): Whenever you link or cite a persisted ticket file — in Ticket format sections, chat, or Markdown — use the full path from the repository root (for example .deuk-agent-ticket/TICKET_LIST.md, project_i/foo/internal/ticket.md). Do not use a bare filename (LATEST.md alone) or an ambiguous partial path. In monorepos, include every prefix segment so the path is unique in the workspace. Markdown: put the full path in the link target, e.g. [ticket](.deuk-agent-ticket/TICKET_LIST.md) (repo-relative).
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Vertical slices, portfolio priority, parallel-branch ownership, scoped refactors
|
|
3
|
-
alwaysApply: true
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Delivery, portfolio, and parallel work
|
|
7
|
-
|
|
8
|
-
## Default shape of work
|
|
9
|
-
|
|
10
|
-
- Prefer
|
|
11
|
-
- When the user states
|
|
12
|
-
|
|
13
|
-
## Parallel branches and file ownership
|
|
14
|
-
|
|
15
|
-
- Assume
|
|
16
|
-
- If the user names an
|
|
17
|
-
- When parallel work is likely,
|
|
18
|
-
|
|
19
|
-
## Refactor discipline
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
- Do not use “while we’re here” to rename, reformat, or reorganize unrelated modules.
|
|
23
|
-
|
|
24
|
-
## Interaction with
|
|
25
|
-
|
|
26
|
-
- If a
|
|
1
|
+
---
|
|
2
|
+
description: Vertical slices, portfolio priority, parallel-branch ownership, scoped refactors
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Delivery, portfolio, and parallel work
|
|
7
|
+
|
|
8
|
+
## Default shape of work
|
|
9
|
+
|
|
10
|
+
- Prefer one PR (or one agent session outcome) = one vertically integrated slice: buildable, runnable, and demo-able end-to-end for that slice. Do not treat “wide refactors with no user-visible behavior” as the default unit of delivery unless the user explicitly asks for that.
|
|
11
|
+
- When the user states portfolio, demo, or ship-this-week priority, treat that as scope authority: narrow the task to what improves the visible outcome first; defer broad cleanups to a follow-up ticket unless they are blocking the slice.
|
|
12
|
+
|
|
13
|
+
## Parallel branches and file ownership
|
|
14
|
+
|
|
15
|
+
- Assume other branches or developers may be editing the same repo. Before touching widely shared files (large pages, shared lib/, config roots), minimize blast radius: prefer a small, well-bounded edit over sweeping moves in the same change set.
|
|
16
|
+
- If the user names an owner branch, feature lane, or file ownership (e.g. “UI lane owns components/, gameplay owns lib/game/”), stay inside that boundary unless they explicitly expand it.
|
|
17
|
+
- When parallel work is likely, call out touched paths that are high-merge-conflict risk so the user can coordinate; do not silently expand into those files without need.
|
|
18
|
+
|
|
19
|
+
## Refactor discipline
|
|
20
|
+
|
|
21
|
+
- Shrink refactor scope by default: extract or adjust only what the current task requires. If a larger refactor is tempting, split it: (1) minimal change that satisfies the task, (2) optional follow-up task in ticket format.
|
|
22
|
+
- Do not use “while we’re here” to rename, reformat, or reorganize unrelated modules.
|
|
23
|
+
|
|
24
|
+
## Interaction with tickets
|
|
25
|
+
|
|
26
|
+
- If a ticket or user message defines Files to modify and Constraints, those win; this rule file narrows how you plan and execute within that envelope — it does not override explicit file lists.
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
---
|
|
2
|
-
description:
|
|
3
|
-
alwaysApply:
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Git
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
- **쓰지 말 것**: diff 재서술, 파일 목록 나열, “업데이트함/개선함” 같은 빈 말, 이모지, 장문 튜토리얼, 영어·한국어 이중 번역(팀 언어 하나만).
|
|
20
|
-
|
|
21
|
-
## 비용
|
|
22
|
-
|
|
23
|
-
- 한 커밋 주제면 **제목 한 줄로 끝낸다.**
|
|
24
|
-
- 스테이징이 크면 제목은 요약하고, 본문은 **사용자가 본문 달라고 할 때만** 추가한다.
|
|
1
|
+
---
|
|
2
|
+
description: Commit message formatting (Plain text only)
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Git Commit Rules
|
|
7
|
+
|
|
8
|
+
Apply only when writing commit messages or staging summaries. Output must consume minimal tokens; content must be high-signal for search and review.
|
|
9
|
+
|
|
10
|
+
- First line only: Imperative mood, under 72 characters, no trailing period.
|
|
11
|
+
- Optional type(scope): summary — feat, fix, refactor, docs, chore, etc. Use a single word for scope (directory or module).
|
|
12
|
+
- Body: Only when requested by the user or when changes span multiple topics. Use a maximum of 3 bullet points, each under 80 characters.
|
|
13
|
+
|
|
14
|
+
- What to include: Describe what changed in one sentence (behavior, contract, compatibility). Mark risky changes with a prefix (e.g., BREAKING or migration note).
|
|
15
|
+
- What to exclude: Do not restate diffs, list filenames, use filler like "updated/improved", use emojis, provide long tutorials, or provide bilingual translations (use one project language). Never use the word "sync" in the commit title; use specific words like "release", "update", or "apply".
|
|
16
|
+
|
|
17
|
+
- For single-topic commits, use a one-line title only.
|
|
18
|
+
- For large staging areas, summarize the title and only add a body if the user explicitly requests it.
|