mdcontext 0.0.1 → 0.2.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/.changeset/README.md +28 -0
- package/.changeset/config.json +11 -0
- package/.claude/settings.local.json +25 -0
- package/.github/workflows/ci.yml +83 -0
- package/.github/workflows/claude-code-review.yml +44 -0
- package/.github/workflows/claude.yml +85 -0
- package/.github/workflows/release.yml +113 -0
- package/.tldrignore +112 -0
- package/BACKLOG.md +338 -0
- package/CONTRIBUTING.md +186 -0
- package/NOTES/NOTES +44 -0
- package/README.md +434 -11
- package/biome.json +36 -0
- package/cspell.config.yaml +14 -0
- package/dist/chunk-23UPXDNL.js +3044 -0
- package/dist/chunk-2W7MO2DL.js +1366 -0
- package/dist/chunk-3NUAZGMA.js +1689 -0
- package/dist/chunk-7TOWB2XB.js +366 -0
- package/dist/chunk-7XOTOADQ.js +3065 -0
- package/dist/chunk-AH2PDM2K.js +3042 -0
- package/dist/chunk-BNXWSZ63.js +3742 -0
- package/dist/chunk-BTL5DJVU.js +3222 -0
- package/dist/chunk-HDHYG7E4.js +104 -0
- package/dist/chunk-HLR4KZBP.js +3234 -0
- package/dist/chunk-IP3FRFEB.js +1045 -0
- package/dist/chunk-KHU56VDO.js +3042 -0
- package/dist/chunk-KRYIFLQR.js +88 -0
- package/dist/chunk-LBSDNLEM.js +287 -0
- package/dist/chunk-MNTQ7HCP.js +2643 -0
- package/dist/chunk-MUJELQQ6.js +1387 -0
- package/dist/chunk-MXJGMSLV.js +2199 -0
- package/dist/chunk-N6QJGC3Z.js +2636 -0
- package/dist/chunk-OBELGBPM.js +1713 -0
- package/dist/chunk-OT7R5XTA.js +3192 -0
- package/dist/chunk-P7X4RA2T.js +106 -0
- package/dist/chunk-PIDUQNC2.js +3185 -0
- package/dist/chunk-POGCDIH4.js +3187 -0
- package/dist/chunk-PSIEOQGZ.js +3043 -0
- package/dist/chunk-PVRT3IHA.js +3238 -0
- package/dist/chunk-QNN4TT23.js +1430 -0
- package/dist/chunk-RE3R45RJ.js +3042 -0
- package/dist/chunk-S7E6TFX6.js +803 -0
- package/dist/chunk-SG6GLU4U.js +1378 -0
- package/dist/chunk-SJCDV2ST.js +274 -0
- package/dist/chunk-SYE5XLF3.js +104 -0
- package/dist/chunk-T5VLYBZD.js +103 -0
- package/dist/chunk-TOQB7VWU.js +3238 -0
- package/dist/chunk-VFNMZ4ZQ.js +3228 -0
- package/dist/chunk-VVTGZNBT.js +1629 -0
- package/dist/chunk-W7Q4RFEV.js +104 -0
- package/dist/chunk-XTYYVRLO.js +3190 -0
- package/dist/chunk-Y6MDYVJD.js +3063 -0
- package/dist/cli/main.d.ts +1 -0
- package/dist/cli/main.js +5458 -0
- package/dist/index.d.ts +653 -0
- package/dist/index.js +79 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +472 -0
- package/dist/schema-BAWSG7KY.js +22 -0
- package/dist/schema-E3QUPL26.js +20 -0
- package/dist/schema-EHL7WUT6.js +20 -0
- package/docs/019-USAGE.md +625 -0
- package/docs/020-current-implementation.md +364 -0
- package/docs/021-DOGFOODING-FINDINGS.md +175 -0
- package/docs/BACKLOG.md +80 -0
- package/docs/CONFIG.md +1123 -0
- package/docs/DESIGN.md +439 -0
- package/docs/ERRORS.md +383 -0
- package/docs/PROJECT.md +88 -0
- package/docs/ROADMAP.md +407 -0
- package/docs/summarization.md +320 -0
- package/docs/test-links.md +9 -0
- package/justfile +40 -0
- package/package.json +74 -9
- package/pnpm-workspace.yaml +5 -0
- package/research/INDEX.md +315 -0
- package/research/code-review/README.md +90 -0
- package/research/code-review/cli-error-handling-review.md +979 -0
- package/research/code-review/code-review-validation-report.md +464 -0
- package/research/code-review/main-ts-review.md +1128 -0
- package/research/config-analysis/01-current-implementation.md +470 -0
- package/research/config-analysis/02-strategy-recommendation.md +428 -0
- package/research/config-analysis/03-task-candidates.md +715 -0
- package/research/config-analysis/033-research-configuration-management.md +828 -0
- package/research/config-analysis/034-research-effect-cli-config.md +1504 -0
- package/research/config-analysis/04-consolidated-task-candidates.md +277 -0
- package/research/config-docs/SUMMARY.md +357 -0
- package/research/config-docs/TEST-RESULTS.md +776 -0
- package/research/config-docs/TODO.md +542 -0
- package/research/config-docs/analysis.md +744 -0
- package/research/config-docs/fix-validation.md +502 -0
- package/research/config-docs/help-audit.md +264 -0
- package/research/config-docs/help-system-analysis.md +890 -0
- package/research/dogfood/consolidated-tool-evaluation.md +373 -0
- package/research/dogfood/strategy-a/a-synthesis.md +184 -0
- package/research/dogfood/strategy-a/a1-docs.md +226 -0
- package/research/dogfood/strategy-a/a2-amorphic.md +156 -0
- package/research/dogfood/strategy-a/a3-llm.md +164 -0
- package/research/dogfood/strategy-b/b-synthesis.md +228 -0
- package/research/dogfood/strategy-b/b1-architecture.md +207 -0
- package/research/dogfood/strategy-b/b2-gaps.md +258 -0
- package/research/dogfood/strategy-b/b3-workflows.md +250 -0
- package/research/dogfood/strategy-c/c-synthesis.md +451 -0
- package/research/dogfood/strategy-c/c1-explorer.md +192 -0
- package/research/dogfood/strategy-c/c2-diver-memory.md +145 -0
- package/research/dogfood/strategy-c/c3-diver-control.md +148 -0
- package/research/dogfood/strategy-c/c4-diver-failure.md +151 -0
- package/research/dogfood/strategy-c/c5-diver-execution.md +221 -0
- package/research/dogfood/strategy-c/c6-diver-org.md +221 -0
- package/research/effect-cli-error-handling.md +845 -0
- package/research/effect-errors-as-values.md +943 -0
- package/research/errors-task-analysis/00-consolidated-tasks.md +207 -0
- package/research/errors-task-analysis/cli-commands-analysis.md +909 -0
- package/research/errors-task-analysis/embeddings-analysis.md +709 -0
- package/research/errors-task-analysis/index-search-analysis.md +812 -0
- package/research/frontmatter/COMMENTS-ARE-SKIPPED.md +149 -0
- package/research/frontmatter/LLM-CODE-NAVIGATION.md +276 -0
- package/research/issue-review.md +603 -0
- package/research/llm-summarization/agent-cli-tools-2026.md +1082 -0
- package/research/llm-summarization/alternative-providers-2026.md +1428 -0
- package/research/llm-summarization/anthropic-2026.md +367 -0
- package/research/llm-summarization/claude-cli-integration.md +1706 -0
- package/research/llm-summarization/cli-integration-patterns.md +3155 -0
- package/research/llm-summarization/openai-2026.md +473 -0
- package/research/llm-summarization/openai-compatible-providers-2026.md +1022 -0
- package/research/llm-summarization/opencode-cli-integration.md +1552 -0
- package/research/llm-summarization/prompt-engineering-2026.md +1426 -0
- package/research/llm-summarization/prototype-results.md +56 -0
- package/research/llm-summarization/provider-switching-patterns-2026.md +2153 -0
- package/research/llm-summarization/typescript-llm-libraries-2026.md +2436 -0
- package/research/mdcontext-error-analysis.md +521 -0
- package/research/mdcontext-pudding/00-EXECUTIVE-SUMMARY.md +282 -0
- package/research/mdcontext-pudding/01-index-embed.md +956 -0
- package/research/mdcontext-pudding/02-search-COMMANDS.md +142 -0
- package/research/mdcontext-pudding/02-search-SUMMARY.md +146 -0
- package/research/mdcontext-pudding/02-search.md +970 -0
- package/research/mdcontext-pudding/03-context.md +779 -0
- package/research/mdcontext-pudding/04-navigation-and-analytics.md +803 -0
- package/research/mdcontext-pudding/04-tree.md +704 -0
- package/research/mdcontext-pudding/05-config.md +1038 -0
- package/research/mdcontext-pudding/06-links-summary.txt +87 -0
- package/research/mdcontext-pudding/06-links.md +679 -0
- package/research/mdcontext-pudding/07-stats.md +693 -0
- package/research/mdcontext-pudding/BUG-FIX-PLAN.md +388 -0
- package/research/mdcontext-pudding/P0-BUG-VALIDATION.md +167 -0
- package/research/mdcontext-pudding/README.md +168 -0
- package/research/mdcontext-pudding/TESTING-SUMMARY.md +128 -0
- package/research/npm_publish/011-npm-workflow-research-agent2.md +792 -0
- package/research/npm_publish/012-npm-workflow-research-agent1.md +530 -0
- package/research/npm_publish/013-npm-workflow-research-agent3.md +722 -0
- package/research/npm_publish/014-npm-workflow-synthesis.md +556 -0
- package/research/npm_publish/031-npm-workflow-task-analysis.md +134 -0
- package/research/research-quality-review.md +834 -0
- package/research/semantic-search/002-research-embedding-models.md +490 -0
- package/research/semantic-search/003-research-rag-alternatives.md +523 -0
- package/research/semantic-search/004-research-vector-search.md +841 -0
- package/research/semantic-search/032-research-semantic-search.md +427 -0
- package/research/semantic-search/embedding-text-analysis.md +156 -0
- package/research/semantic-search/multi-word-failure-reproduction.md +171 -0
- package/research/semantic-search/query-processing-analysis.md +207 -0
- package/research/semantic-search/root-cause-and-solution.md +114 -0
- package/research/semantic-search/threshold-validation-report.md +69 -0
- package/research/semantic-search/vector-search-analysis.md +63 -0
- package/research/task-management-2026/00-synthesis-recommendations.md +295 -0
- package/research/task-management-2026/01-ai-workflow-tools.md +416 -0
- package/research/task-management-2026/02-agent-framework-patterns.md +476 -0
- package/research/task-management-2026/03-lightweight-file-based.md +567 -0
- package/research/task-management-2026/04-established-tools-ai-features.md +541 -0
- package/research/task-management-2026/linear/01-core-features-workflow.md +771 -0
- package/research/task-management-2026/linear/02-api-integrations.md +930 -0
- package/research/task-management-2026/linear/03-ai-features.md +368 -0
- package/research/task-management-2026/linear/04-pricing-setup.md +205 -0
- package/research/task-management-2026/linear/05-usage-patterns-best-practices.md +605 -0
- package/research/test-path-issues.md +276 -0
- package/review/ALP-76/1-error-type-design.md +962 -0
- package/review/ALP-76/2-error-handling-patterns.md +906 -0
- package/review/ALP-76/3-error-presentation.md +624 -0
- package/review/ALP-76/4-test-coverage.md +625 -0
- package/review/ALP-76/5-migration-completeness.md +440 -0
- package/review/ALP-76/6-effect-best-practices.md +755 -0
- package/scripts/apply-branch-protection.sh +47 -0
- package/scripts/branch-protection-templates.json +79 -0
- package/scripts/prototype-summarization.ts +346 -0
- package/scripts/rebuild-hnswlib.js +58 -0
- package/scripts/setup-branch-protection.sh +64 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/active-provider.json +7 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.json +541 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/bm25.meta.json +5 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/config.json +8 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/documents.json +60 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/links.json +13 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/.mdcontext/indexes/sections.json +1197 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/configuration-management.md +99 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/distributed-systems.md +92 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/error-handling.md +78 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/failure-automation.md +55 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/job-context.md +69 -0
- package/src/__tests__/fixtures/semantic-search/multi-word-corpus/process-orchestration.md +99 -0
- package/src/cli/argv-preprocessor.test.ts +210 -0
- package/src/cli/argv-preprocessor.ts +202 -0
- package/src/cli/cli.test.ts +627 -0
- package/src/cli/commands/backlinks.ts +54 -0
- package/src/cli/commands/config-cmd.ts +642 -0
- package/src/cli/commands/context.ts +285 -0
- package/src/cli/commands/duplicates.ts +122 -0
- package/src/cli/commands/embeddings.ts +529 -0
- package/src/cli/commands/index-cmd.ts +480 -0
- package/src/cli/commands/index.ts +16 -0
- package/src/cli/commands/links.ts +52 -0
- package/src/cli/commands/search.ts +1281 -0
- package/src/cli/commands/stats.ts +149 -0
- package/src/cli/commands/tree.ts +128 -0
- package/src/cli/config-layer.ts +176 -0
- package/src/cli/error-handler.test.ts +235 -0
- package/src/cli/error-handler.ts +655 -0
- package/src/cli/flag-schemas.ts +341 -0
- package/src/cli/help.ts +588 -0
- package/src/cli/index.ts +9 -0
- package/src/cli/main.ts +435 -0
- package/src/cli/options.ts +41 -0
- package/src/cli/shared-error-handling.ts +199 -0
- package/src/cli/typo-suggester.test.ts +105 -0
- package/src/cli/typo-suggester.ts +130 -0
- package/src/cli/utils.ts +259 -0
- package/src/config/file-provider.test.ts +320 -0
- package/src/config/file-provider.ts +273 -0
- package/src/config/index.ts +72 -0
- package/src/config/integration.test.ts +667 -0
- package/src/config/precedence.test.ts +277 -0
- package/src/config/precedence.ts +451 -0
- package/src/config/schema.test.ts +414 -0
- package/src/config/schema.ts +603 -0
- package/src/config/service.test.ts +320 -0
- package/src/config/service.ts +243 -0
- package/src/config/testing.test.ts +264 -0
- package/src/config/testing.ts +110 -0
- package/src/core/index.ts +1 -0
- package/src/core/types.ts +113 -0
- package/src/duplicates/detector.test.ts +183 -0
- package/src/duplicates/detector.ts +414 -0
- package/src/duplicates/index.ts +18 -0
- package/src/embeddings/embedding-namespace.test.ts +300 -0
- package/src/embeddings/embedding-namespace.ts +947 -0
- package/src/embeddings/heading-boost.test.ts +222 -0
- package/src/embeddings/hnsw-build-options.test.ts +198 -0
- package/src/embeddings/hyde.test.ts +272 -0
- package/src/embeddings/hyde.ts +264 -0
- package/src/embeddings/index.ts +10 -0
- package/src/embeddings/openai-provider.ts +414 -0
- package/src/embeddings/pricing.json +22 -0
- package/src/embeddings/provider-constants.ts +204 -0
- package/src/embeddings/provider-errors.test.ts +967 -0
- package/src/embeddings/provider-errors.ts +565 -0
- package/src/embeddings/provider-factory.test.ts +240 -0
- package/src/embeddings/provider-factory.ts +225 -0
- package/src/embeddings/provider-integration.test.ts +788 -0
- package/src/embeddings/query-preprocessing.test.ts +187 -0
- package/src/embeddings/semantic-search-threshold.test.ts +508 -0
- package/src/embeddings/semantic-search.ts +1270 -0
- package/src/embeddings/types.ts +359 -0
- package/src/embeddings/vector-store.ts +708 -0
- package/src/embeddings/voyage-provider.ts +313 -0
- package/src/errors/errors.test.ts +845 -0
- package/src/errors/index.ts +533 -0
- package/src/index/ignore-patterns.test.ts +354 -0
- package/src/index/ignore-patterns.ts +305 -0
- package/src/index/index.ts +4 -0
- package/src/index/indexer.ts +684 -0
- package/src/index/storage.ts +260 -0
- package/src/index/types.ts +147 -0
- package/src/index/watcher.ts +189 -0
- package/src/index.ts +30 -0
- package/src/integration/search-keyword.test.ts +678 -0
- package/src/mcp/server.ts +612 -0
- package/src/parser/index.ts +1 -0
- package/src/parser/parser.test.ts +291 -0
- package/src/parser/parser.ts +394 -0
- package/src/parser/section-filter.test.ts +277 -0
- package/src/parser/section-filter.ts +392 -0
- package/src/search/__tests__/hybrid-search.test.ts +650 -0
- package/src/search/bm25-store.ts +366 -0
- package/src/search/cross-encoder.test.ts +253 -0
- package/src/search/cross-encoder.ts +406 -0
- package/src/search/fuzzy-search.test.ts +419 -0
- package/src/search/fuzzy-search.ts +273 -0
- package/src/search/hybrid-search.ts +448 -0
- package/src/search/path-matcher.test.ts +276 -0
- package/src/search/path-matcher.ts +33 -0
- package/src/search/query-parser.test.ts +260 -0
- package/src/search/query-parser.ts +319 -0
- package/src/search/searcher.test.ts +280 -0
- package/src/search/searcher.ts +724 -0
- package/src/search/wink-bm25.d.ts +30 -0
- package/src/summarization/cli-providers/claude.ts +202 -0
- package/src/summarization/cli-providers/detection.test.ts +273 -0
- package/src/summarization/cli-providers/detection.ts +118 -0
- package/src/summarization/cli-providers/index.ts +8 -0
- package/src/summarization/cost.test.ts +139 -0
- package/src/summarization/cost.ts +102 -0
- package/src/summarization/error-handler.test.ts +127 -0
- package/src/summarization/error-handler.ts +111 -0
- package/src/summarization/index.ts +102 -0
- package/src/summarization/pipeline.test.ts +498 -0
- package/src/summarization/pipeline.ts +231 -0
- package/src/summarization/prompts.test.ts +269 -0
- package/src/summarization/prompts.ts +133 -0
- package/src/summarization/provider-factory.test.ts +396 -0
- package/src/summarization/provider-factory.ts +178 -0
- package/src/summarization/types.ts +184 -0
- package/src/summarize/budget-bugs.test.ts +620 -0
- package/src/summarize/formatters.ts +419 -0
- package/src/summarize/index.ts +20 -0
- package/src/summarize/summarizer.test.ts +275 -0
- package/src/summarize/summarizer.ts +597 -0
- package/src/summarize/verify-bugs.test.ts +238 -0
- package/src/types/huggingface-transformers.d.ts +66 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/tokens.test.ts +142 -0
- package/src/utils/tokens.ts +186 -0
- package/tests/fixtures/cli/.mdcontext/active-provider.json +7 -0
- package/tests/fixtures/cli/.mdcontext/config.json +8 -0
- package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.bin +0 -0
- package/tests/fixtures/cli/.mdcontext/embeddings/openai_text-embedding-3-small_512/vectors.meta.bin +0 -0
- package/tests/fixtures/cli/.mdcontext/indexes/documents.json +33 -0
- package/tests/fixtures/cli/.mdcontext/indexes/links.json +12 -0
- package/tests/fixtures/cli/.mdcontext/indexes/sections.json +247 -0
- package/tests/fixtures/cli/README.md +9 -0
- package/tests/fixtures/cli/api-reference.md +11 -0
- package/tests/fixtures/cli/getting-started.md +11 -0
- package/tests/integration/embed-index.test.ts +712 -0
- package/tests/integration/search-context.test.ts +469 -0
- package/tests/integration/search-semantic.test.ts +522 -0
- package/tsconfig.json +26 -0
- package/vitest.config.ts +16 -0
- package/vitest.setup.ts +12 -0
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
# Linear Usage Patterns and Best Practices
|
|
2
|
+
|
|
3
|
+
Research on real-world Linear usage patterns from blog posts, case studies, and community discussions.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
1. [Quick Idea Capture Before Planning](#quick-idea-capture-before-planning)
|
|
8
|
+
2. [Triage Workflows](#triage-workflows)
|
|
9
|
+
3. [Solo Developer Workflows](#solo-developer-workflows)
|
|
10
|
+
4. [Team Workflows](#team-workflows)
|
|
11
|
+
5. [Common Mistakes and Anti-Patterns](#common-mistakes-and-anti-patterns)
|
|
12
|
+
6. [Templates and Starter Setups](#templates-and-starter-setups)
|
|
13
|
+
7. [Keyboard-First Productivity](#keyboard-first-productivity)
|
|
14
|
+
8. [Real-World Case Studies](#real-world-case-studies)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Quick Idea Capture Before Planning
|
|
19
|
+
|
|
20
|
+
### The Problem Linear Solves
|
|
21
|
+
|
|
22
|
+
Unlike many native task management apps, Linear doesn't have a built-in quick-entry global hotkey. However, the tool's design philosophy prioritizes speed: **issues only require a title and status** - all other properties are optional. This makes rapid idea capture possible.
|
|
23
|
+
|
|
24
|
+
### Recommended Quick Capture Methods
|
|
25
|
+
|
|
26
|
+
#### 1. Raycast Integration (Recommended)
|
|
27
|
+
|
|
28
|
+
Descript's internal guide recommends using [Raycast](https://www.raycast.com/), a free system-wide command bar:
|
|
29
|
+
|
|
30
|
+
> "Install the Linear extension and bind the 'create issue for myself' action to a hotkey like Command+Space+Shift. This solves a key requirement of any task management system - a way to quickly capture an emergent issue so you're never left trying to store things in your brain."
|
|
31
|
+
|
|
32
|
+
#### 2. Slack to Linear Automation
|
|
33
|
+
|
|
34
|
+
Descript built a Zapier automation workflow:
|
|
35
|
+
|
|
36
|
+
1. New Slack message triggers the automation
|
|
37
|
+
2. ChatGPT summarizes the message into 12 words or less
|
|
38
|
+
3. Creates a Linear issue with the summary as title
|
|
39
|
+
4. Populates description with markdown link back to Slack
|
|
40
|
+
|
|
41
|
+
#### 3. Direct Keyboard Shortcut
|
|
42
|
+
|
|
43
|
+
Press `C` anywhere in Linear to create a new issue instantly.
|
|
44
|
+
|
|
45
|
+
### Quick Capture Best Practices
|
|
46
|
+
|
|
47
|
+
- **Capture first, organize later**: Don't worry about labels, assignees, or priorities during brain dump
|
|
48
|
+
- **Use Triage as your inbox**: Issues can sit in Triage until you're ready to process them
|
|
49
|
+
- **Set a daily triage routine**: Process your captured ideas at a scheduled time
|
|
50
|
+
- **Keep titles action-oriented**: Even in quick capture, write titles that describe what needs to happen
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Triage Workflows
|
|
55
|
+
|
|
56
|
+
### Understanding Triage in Linear
|
|
57
|
+
|
|
58
|
+
Triage is an optional status category that acts as an **inbox for your team**. It creates a separation between incoming work and your committed backlog.
|
|
59
|
+
|
|
60
|
+
### When Issues Land in Triage
|
|
61
|
+
|
|
62
|
+
Issues automatically go to Triage when:
|
|
63
|
+
|
|
64
|
+
- Created through integrations (Slack, Sentry, Zendesk)
|
|
65
|
+
- Created while inside the Triage view
|
|
66
|
+
- Created by workspace members not belonging to your specific team
|
|
67
|
+
- Submitted via in-app feedback widgets
|
|
68
|
+
|
|
69
|
+
### The Triage Workflow
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
[New Issue] -> [Triage Inbox] -> Decision Point
|
|
73
|
+
|
|
|
74
|
+
+--------+--------+--------+--------+
|
|
75
|
+
| | | | |
|
|
76
|
+
Accept Escalate Merge Decline Snooze
|
|
77
|
+
| | | | |
|
|
78
|
+
v v v v v
|
|
79
|
+
Backlog Current Existing Closed Later
|
|
80
|
+
Cycle Issue
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Triage Intelligence (AI-Powered)
|
|
84
|
+
|
|
85
|
+
Linear's AI features automate triage assessment:
|
|
86
|
+
|
|
87
|
+
- Automatically flags duplicate requests
|
|
88
|
+
- Links related issues together
|
|
89
|
+
- Suggests properties like labels and assignees
|
|
90
|
+
- Routes issues to the appropriate team
|
|
91
|
+
|
|
92
|
+
### Triage Best Practices
|
|
93
|
+
|
|
94
|
+
1. **Daily review**: Someone should check Triage daily (or set a rotating responsibility)
|
|
95
|
+
2. **Use keyboard shortcuts**: `G` then `T` navigates to Triage view
|
|
96
|
+
3. **Process, don't park**: Every issue in Triage should move within 24-48 hours
|
|
97
|
+
4. **Decline with explanation**: When declining, always leave a comment explaining why
|
|
98
|
+
5. **Use snooze strategically**: For issues that aren't ready but shouldn't be lost
|
|
99
|
+
|
|
100
|
+
### Triage vs Backlog: When to Use Each
|
|
101
|
+
|
|
102
|
+
| Triage | Backlog |
|
|
103
|
+
| --------------------------- | ---------------------------- |
|
|
104
|
+
| Unvetted, needs review | Accepted, ready to be worked |
|
|
105
|
+
| Source may be unclear | Properly scoped and assigned |
|
|
106
|
+
| May be duplicate or invalid | Validated and unique |
|
|
107
|
+
| Requires assessment | Prioritized for future work |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Solo Developer Workflows
|
|
112
|
+
|
|
113
|
+
### Setting Up for Solo Work
|
|
114
|
+
|
|
115
|
+
> "If you're solo, just create one team (e.g., 'Development' or 'My Work')."
|
|
116
|
+
|
|
117
|
+
Solo developers benefit from Linear's structure without the overhead of team coordination.
|
|
118
|
+
|
|
119
|
+
### Recommended Solo Setup
|
|
120
|
+
|
|
121
|
+
1. **Single Team**: One team for all your work
|
|
122
|
+
2. **Label Groups for Life Areas**: Create labels for different contexts (e.g., "Side Project", "Learning", "Client Work")
|
|
123
|
+
3. **2-Week Cycles**: Short enough to stay focused, long enough to complete meaningful features
|
|
124
|
+
4. **Realistic Planning**: Target 80-90% completion rate per cycle
|
|
125
|
+
|
|
126
|
+
### Solo Developer Workflow Example
|
|
127
|
+
|
|
128
|
+
From a personal productivity case study:
|
|
129
|
+
|
|
130
|
+
**Planning Phase (Sprint Grooming)**:
|
|
131
|
+
|
|
132
|
+
- List all pending tasks
|
|
133
|
+
- Estimate time and priority for each
|
|
134
|
+
- If completion rates hover around 50-70%, reduce workload
|
|
135
|
+
|
|
136
|
+
**Execution Phase**:
|
|
137
|
+
|
|
138
|
+
- Plan next day's tasks the night before
|
|
139
|
+
- Review day's completion each morning
|
|
140
|
+
- Update issue statuses daily
|
|
141
|
+
|
|
142
|
+
**Review Phase**:
|
|
143
|
+
|
|
144
|
+
- Track completion rates at end of cycle
|
|
145
|
+
- Note emotional state during execution
|
|
146
|
+
- Identify improvements for next sprint
|
|
147
|
+
|
|
148
|
+
### Personal Productivity Tips
|
|
149
|
+
|
|
150
|
+
1. **Use "My Issues" view**: Press `G` then `M` to see all your assigned issues
|
|
151
|
+
2. **Keep "Scheduled" list tight**: No more than 3 high-priority items at a time
|
|
152
|
+
3. **Linear as second brain**: Use it to reduce cognitive load - if it's not in Linear, it doesn't exist
|
|
153
|
+
4. **Leverage MCP integration**: Use AI (Claude) to batch-create tasks from syllabi, notes, or requirements
|
|
154
|
+
|
|
155
|
+
### Managing Side Projects with Initiatives
|
|
156
|
+
|
|
157
|
+
Even solo, use Linear's hierarchy:
|
|
158
|
+
|
|
159
|
+
- **Initiatives**: Major life/work streams (e.g., "Client Work", "Products", "Learning")
|
|
160
|
+
- **Projects**: Specific deliverables under each initiative
|
|
161
|
+
- **Issues**: Individual tasks
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Team Workflows
|
|
166
|
+
|
|
167
|
+
### The Plum Approach
|
|
168
|
+
|
|
169
|
+
[Plum's engineering blog](https://build.plumhq.com/how-we-use-linear/) details their three-stage workflow:
|
|
170
|
+
|
|
171
|
+
#### Plan Stage
|
|
172
|
+
|
|
173
|
+
- Create quarterly roadmaps aligned with OKRs
|
|
174
|
+
- Projects listed for every key result
|
|
175
|
+
- One week before cycle starts, managers assign estimated projects
|
|
176
|
+
|
|
177
|
+
#### Work Stage
|
|
178
|
+
|
|
179
|
+
**For Managers:**
|
|
180
|
+
|
|
181
|
+
- Use cycle views during standups (filter by assignee)
|
|
182
|
+
- Log blocking issues in Linear for async notifications
|
|
183
|
+
- Mid-cycle: assess progress using cycle graph
|
|
184
|
+
- Maintain updated project and milestone due dates
|
|
185
|
+
|
|
186
|
+
**For Contributors:**
|
|
187
|
+
|
|
188
|
+
- Update issue statuses daily before standups
|
|
189
|
+
- Use GitHub integration for automatic PR status sync
|
|
190
|
+
- Append deliverables (Figma, GitHub PRs) to issues
|
|
191
|
+
- Keep due dates continuously updated
|
|
192
|
+
|
|
193
|
+
#### Review Stage
|
|
194
|
+
|
|
195
|
+
- Calculate team velocity from previous 3 cycles
|
|
196
|
+
- Identify missed milestones
|
|
197
|
+
- Evaluate progress toward quarterly objectives
|
|
198
|
+
|
|
199
|
+
### Cycle Planning Best Practices
|
|
200
|
+
|
|
201
|
+
> "The cycle is planned when each team member has an adequate number of estimated points assigned. Estimate points serve as a guideline to avoid overloading developers."
|
|
202
|
+
|
|
203
|
+
1. **Calculate bandwidth**: Team size x working days - carryover work
|
|
204
|
+
2. **Don't overload**: Cycles should feel reasonable
|
|
205
|
+
3. **Auto-rollover**: Let unfinished items move to next cycle automatically
|
|
206
|
+
4. **Include bug fixes**: All software has bugs - budget for them in every cycle
|
|
207
|
+
|
|
208
|
+
### Team Organization Principles
|
|
209
|
+
|
|
210
|
+
From The Linear Method:
|
|
211
|
+
|
|
212
|
+
1. **Clear ownership**: Every project and issue should have a single responsible owner
|
|
213
|
+
2. **Break down work**: Large tasks into smaller parts, ideally completable in a day or two
|
|
214
|
+
3. **Brevity in specs**: Short documents force clear scoping
|
|
215
|
+
4. **Designer-engineer collaboration**: Work together throughout, not in handoffs
|
|
216
|
+
|
|
217
|
+
### GitHub Integration Workflow
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
1. Copy git branch name from Linear (auto-moves issue to "In Progress")
|
|
221
|
+
2. Create branch with issue ID (e.g., eng-123-my-feature)
|
|
222
|
+
3. PR automatically links to Linear issue
|
|
223
|
+
4. PR merge automatically moves issue to "Done"
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Configuration tip: Set workflow automations per team in team settings.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Common Mistakes and Anti-Patterns
|
|
231
|
+
|
|
232
|
+
### Mistake 1: Over-Customization
|
|
233
|
+
|
|
234
|
+
> "Teams try to recreate Jira-level complexity with too many custom statuses, nested labels, or rigid workflows. Before long, people stop following the process altogether."
|
|
235
|
+
|
|
236
|
+
**What goes wrong:**
|
|
237
|
+
|
|
238
|
+
- Too many custom states (keep to 5-7 maximum)
|
|
239
|
+
- Excessive automation rules that become hard to maintain
|
|
240
|
+
- Too many teams and projects that fragment work
|
|
241
|
+
- Complex workflows that team members can't follow
|
|
242
|
+
|
|
243
|
+
**The fix:** Start with Linear's defaults. Only customize if a real pain point arises.
|
|
244
|
+
|
|
245
|
+
### Mistake 2: User Stories Instead of Issues
|
|
246
|
+
|
|
247
|
+
> "At Linear, they don't write user stories and think they're an anti-pattern in product development."
|
|
248
|
+
|
|
249
|
+
**What goes wrong:**
|
|
250
|
+
|
|
251
|
+
- Formulaic "As a user, I want to..." adds overhead without value
|
|
252
|
+
- Focus shifts from clear communication to format compliance
|
|
253
|
+
|
|
254
|
+
**The fix:** Write simple issues in plain language. Focus on what needs to be done, not on following a template.
|
|
255
|
+
|
|
256
|
+
### Mistake 3: Hoarding Everything in the Backlog
|
|
257
|
+
|
|
258
|
+
> "You don't need to save every feature request or piece of feedback indefinitely. Important ones will resurface, low priority ones will never get fixed."
|
|
259
|
+
|
|
260
|
+
**What goes wrong:**
|
|
261
|
+
|
|
262
|
+
- Backlog becomes a graveyard of forgotten ideas
|
|
263
|
+
- Planning sessions become overwhelming
|
|
264
|
+
- Team loses trust in the system
|
|
265
|
+
|
|
266
|
+
**The fix:**
|
|
267
|
+
|
|
268
|
+
- Archive issues untouched for 30+ days
|
|
269
|
+
- Schedule regular "Linear gardening" sessions
|
|
270
|
+
- Keep backlog focused on realistic work
|
|
271
|
+
|
|
272
|
+
### Mistake 4: Abandoning Cycles
|
|
273
|
+
|
|
274
|
+
> "Teams stop using cycles, letting issues pile up in the backlog or stay perpetually 'In Progress.' Planning becomes reactive. Velocity becomes meaningless."
|
|
275
|
+
|
|
276
|
+
**What goes wrong:**
|
|
277
|
+
|
|
278
|
+
- No rhythm or routine to work
|
|
279
|
+
- No way to measure progress
|
|
280
|
+
- Scope creep becomes unmanageable
|
|
281
|
+
|
|
282
|
+
**The fix:** Commit to a consistent cycle length and planning routine.
|
|
283
|
+
|
|
284
|
+
### Mistake 5: Misusing Estimates
|
|
285
|
+
|
|
286
|
+
**What goes wrong:**
|
|
287
|
+
|
|
288
|
+
- Equating story points with hours (1 SP = 4 hours)
|
|
289
|
+
- Using estimates for delivery date promises
|
|
290
|
+
- Judging performance by points completed
|
|
291
|
+
|
|
292
|
+
**The fix:**
|
|
293
|
+
|
|
294
|
+
- Use estimates for relative sizing only
|
|
295
|
+
- Consider issue count instead (with "split until small" rule)
|
|
296
|
+
- Focus estimates on understanding scope, not timelines
|
|
297
|
+
|
|
298
|
+
### Mistake 6: Misunderstanding Linear Concepts
|
|
299
|
+
|
|
300
|
+
> "Linear's concept of 'Project' is actually what you would call a Feature. Teams have tried to use Linear's Projects as features, as traditional Projects and as Epics, and neither way made sense."
|
|
301
|
+
|
|
302
|
+
**The fix:** Understand Linear's conceptual model:
|
|
303
|
+
|
|
304
|
+
- **Workspace**: Your company
|
|
305
|
+
- **Team**: A group working together (engineering, design, etc.)
|
|
306
|
+
- **Project**: A time-bound deliverable (like a feature launch)
|
|
307
|
+
- **Cycle**: A rhythm for work (like a sprint, but not tied to releases)
|
|
308
|
+
- **Issue**: An individual task
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Templates and Starter Setups
|
|
313
|
+
|
|
314
|
+
### Project Templates
|
|
315
|
+
|
|
316
|
+
Access via `G` `S` (Settings) -> Templates, or per-team settings.
|
|
317
|
+
|
|
318
|
+
**Workspace Templates:**
|
|
319
|
+
|
|
320
|
+
- Available to all teams
|
|
321
|
+
- Cannot preset team-specific properties
|
|
322
|
+
- Best for cross-team issue types
|
|
323
|
+
|
|
324
|
+
**Team Templates:**
|
|
325
|
+
|
|
326
|
+
- Only available within that team
|
|
327
|
+
- Full access to team labels and statuses
|
|
328
|
+
- Best for team-specific workflows (bugs, features, etc.)
|
|
329
|
+
|
|
330
|
+
### Form Templates
|
|
331
|
+
|
|
332
|
+
More structured than standard templates. Useful for:
|
|
333
|
+
|
|
334
|
+
- Bug reports requiring repro steps and environment details
|
|
335
|
+
- Security incidents capturing severity and timing
|
|
336
|
+
- IT/HR requests for equipment or onboarding
|
|
337
|
+
|
|
338
|
+
Form template fields can include:
|
|
339
|
+
|
|
340
|
+
- Text input, dropdowns, checkboxes
|
|
341
|
+
- Issue properties (priority, customer, label groups)
|
|
342
|
+
- Required field markers
|
|
343
|
+
|
|
344
|
+
### Starter Issue Templates
|
|
345
|
+
|
|
346
|
+
#### Bug Report Template
|
|
347
|
+
|
|
348
|
+
```markdown
|
|
349
|
+
## Description
|
|
350
|
+
|
|
351
|
+
[Brief description of the bug]
|
|
352
|
+
|
|
353
|
+
## Steps to Reproduce
|
|
354
|
+
|
|
355
|
+
1.
|
|
356
|
+
2.
|
|
357
|
+
3.
|
|
358
|
+
|
|
359
|
+
## Expected Behavior
|
|
360
|
+
|
|
361
|
+
[What should happen]
|
|
362
|
+
|
|
363
|
+
## Actual Behavior
|
|
364
|
+
|
|
365
|
+
[What actually happens]
|
|
366
|
+
|
|
367
|
+
## Environment
|
|
368
|
+
|
|
369
|
+
- Browser/App version:
|
|
370
|
+
- OS:
|
|
371
|
+
- Device:
|
|
372
|
+
|
|
373
|
+
## Screenshots/Videos
|
|
374
|
+
|
|
375
|
+
[Attach if available]
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
#### Feature Request Template
|
|
379
|
+
|
|
380
|
+
```markdown
|
|
381
|
+
## Problem Statement
|
|
382
|
+
|
|
383
|
+
[What problem does this solve?]
|
|
384
|
+
|
|
385
|
+
## Proposed Solution
|
|
386
|
+
|
|
387
|
+
[Brief description of the feature]
|
|
388
|
+
|
|
389
|
+
## Success Criteria
|
|
390
|
+
|
|
391
|
+
- [ ]
|
|
392
|
+
- [ ]
|
|
393
|
+
|
|
394
|
+
## Additional Context
|
|
395
|
+
|
|
396
|
+
[Any relevant background]
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Recommended Label Setup
|
|
400
|
+
|
|
401
|
+
Keep labels minimal and consistent:
|
|
402
|
+
|
|
403
|
+
```
|
|
404
|
+
Priority (built-in):
|
|
405
|
+
- Urgent
|
|
406
|
+
- High
|
|
407
|
+
- Medium
|
|
408
|
+
- Low
|
|
409
|
+
|
|
410
|
+
Type:
|
|
411
|
+
- Bug
|
|
412
|
+
- Feature
|
|
413
|
+
- Improvement
|
|
414
|
+
- Tech Debt
|
|
415
|
+
|
|
416
|
+
Area (team-specific):
|
|
417
|
+
- Frontend
|
|
418
|
+
- Backend
|
|
419
|
+
- Infrastructure
|
|
420
|
+
- Documentation
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
**Naming conventions:**
|
|
424
|
+
|
|
425
|
+
- Singular, not plural ("Bug" not "Bugs")
|
|
426
|
+
- Consistent capitalization ("Frontend" not "front-end")
|
|
427
|
+
- Don't replicate statuses as labels
|
|
428
|
+
|
|
429
|
+
### Starter Workflow Setup
|
|
430
|
+
|
|
431
|
+
**Default statuses (recommended to keep):**
|
|
432
|
+
|
|
433
|
+
1. Triage (optional but recommended)
|
|
434
|
+
2. Backlog
|
|
435
|
+
3. Todo
|
|
436
|
+
4. In Progress
|
|
437
|
+
5. In Review
|
|
438
|
+
6. Done
|
|
439
|
+
7. Canceled
|
|
440
|
+
|
|
441
|
+
**Cycle setup:**
|
|
442
|
+
|
|
443
|
+
- 2-week cycles are most common
|
|
444
|
+
- Set automatic start day (Monday recommended)
|
|
445
|
+
- Enable automatic rollover for incomplete items
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## Keyboard-First Productivity
|
|
450
|
+
|
|
451
|
+
Linear is arguably the most keyboard-optimized project management tool. Mastering shortcuts dramatically improves efficiency.
|
|
452
|
+
|
|
453
|
+
### Essential Shortcuts
|
|
454
|
+
|
|
455
|
+
| Shortcut | Action |
|
|
456
|
+
| ---------------- | ----------------------------------- |
|
|
457
|
+
| `?` | Show keyboard shortcuts help |
|
|
458
|
+
| `Cmd/Ctrl + K` | Command palette (context-sensitive) |
|
|
459
|
+
| `C` | Create new issue |
|
|
460
|
+
| `Option/Alt + C` | Create issue from template |
|
|
461
|
+
|
|
462
|
+
### Navigation
|
|
463
|
+
|
|
464
|
+
| Shortcut | Action |
|
|
465
|
+
| ------------ | ------------------- |
|
|
466
|
+
| `G` then `M` | Go to My Issues |
|
|
467
|
+
| `G` then `T` | Go to Triage |
|
|
468
|
+
| `G` then `B` | Go to Backlog |
|
|
469
|
+
| `G` then `A` | Go to Active issues |
|
|
470
|
+
| `O` then `P` | Search projects |
|
|
471
|
+
| `O` then `T` | Switch teams |
|
|
472
|
+
|
|
473
|
+
### Issue Management
|
|
474
|
+
|
|
475
|
+
| Shortcut | Action |
|
|
476
|
+
| ----------- | ------------------------ |
|
|
477
|
+
| `A` | Assign to user |
|
|
478
|
+
| `L` | Add label |
|
|
479
|
+
| `P` | Set priority |
|
|
480
|
+
| `S` | Change status |
|
|
481
|
+
| `F` | Add filter |
|
|
482
|
+
| `E` | Archive notification |
|
|
483
|
+
| `Shift + H` | Snooze issue |
|
|
484
|
+
| `J` / `K` | Navigate up/down in list |
|
|
485
|
+
|
|
486
|
+
### Power User Tips
|
|
487
|
+
|
|
488
|
+
1. **Command-K is context-sensitive**: It shows commands relevant to what you're currently viewing
|
|
489
|
+
2. **Copy branch name**: Automatically assigns issue and moves to "In Progress"
|
|
490
|
+
3. **Learn navigation shortcuts first**: `G` + key combos are the foundation
|
|
491
|
+
4. **Use filters, then save views**: Build your personal dashboards with saved filtered views
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
## Real-World Case Studies
|
|
496
|
+
|
|
497
|
+
### Descript: Building a Work Operating System
|
|
498
|
+
|
|
499
|
+
Descript (all-in-one video editing platform) has used Linear since December 2020.
|
|
500
|
+
|
|
501
|
+
**Key practices:**
|
|
502
|
+
|
|
503
|
+
- Linear as "central work operating system" for EPD and business teams
|
|
504
|
+
- Heavy use of keyboard shortcuts
|
|
505
|
+
- Slack + ChatGPT automation for issue creation
|
|
506
|
+
- Raycast for global quick capture
|
|
507
|
+
- Triage status for initial assignment ("putting issues directly into Todo declares they'll be worked on this week")
|
|
508
|
+
|
|
509
|
+
### Plum: Structured Three-Stage Workflow
|
|
510
|
+
|
|
511
|
+
**Their setup:**
|
|
512
|
+
|
|
513
|
+
- Quarterly roadmaps aligned with OKRs
|
|
514
|
+
- 2-week cycles with bandwidth calculation
|
|
515
|
+
- Projects kept short (no more than 2 cycles)
|
|
516
|
+
- Issues broken into 2-day chunks maximum
|
|
517
|
+
- Daily status updates before standups
|
|
518
|
+
- Heavy use of async communication through Linear
|
|
519
|
+
|
|
520
|
+
**Key insight:**
|
|
521
|
+
|
|
522
|
+
> "When adequately put to use, the majority of communication will be async, freeing teams from the cycle of indefinitely updating people about the same thing."
|
|
523
|
+
|
|
524
|
+
### Creative Agency Use
|
|
525
|
+
|
|
526
|
+
Small design studios report:
|
|
527
|
+
|
|
528
|
+
- Linear feels "less bloated" than traditional tools
|
|
529
|
+
- Freelancers can be onboarded quickly
|
|
530
|
+
- Tags separate dev, design, content, and marketing work in one workspace
|
|
531
|
+
|
|
532
|
+
### Non-Traditional Uses
|
|
533
|
+
|
|
534
|
+
According to Linear staff, people use the tool for:
|
|
535
|
+
|
|
536
|
+
- TV productions
|
|
537
|
+
- Wedding planning
|
|
538
|
+
- House builds
|
|
539
|
+
|
|
540
|
+
This demonstrates the flexibility of the system beyond software development.
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## Summary: Key Principles
|
|
545
|
+
|
|
546
|
+
### The Linear Method Core Ideas
|
|
547
|
+
|
|
548
|
+
1. **Momentum over perfection**: Find a cadence and routine; don't rush toward the end
|
|
549
|
+
2. **Clear ownership**: Single person responsible for every project and issue
|
|
550
|
+
3. **Brevity**: Short specs are more likely to be read
|
|
551
|
+
4. **Break down work**: Small tasks you can complete create visible progress
|
|
552
|
+
5. **Opinionated defaults**: Flexibility creates chaos; constraints create clarity
|
|
553
|
+
|
|
554
|
+
### Daily Habits for Success
|
|
555
|
+
|
|
556
|
+
1. **Morning**: Review "My Issues", update statuses before standup
|
|
557
|
+
2. **Throughout day**: Use keyboard shortcuts, avoid mouse when possible
|
|
558
|
+
3. **Evening**: Quick capture any lingering ideas, review tomorrow's priorities
|
|
559
|
+
4. **Weekly**: Triage processing, cycle planning, backlog grooming
|
|
560
|
+
5. **Quarterly**: Review workflows, simplify what isn't working, adjust structure
|
|
561
|
+
|
|
562
|
+
### When to Scale Complexity
|
|
563
|
+
|
|
564
|
+
Add structure only when its absence becomes painful:
|
|
565
|
+
|
|
566
|
+
- Start with defaults
|
|
567
|
+
- Customize only for real pain points
|
|
568
|
+
- Review and simplify every quarter
|
|
569
|
+
- What works for 5 people may not work for 15
|
|
570
|
+
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
## Sources
|
|
574
|
+
|
|
575
|
+
### Official Linear Resources
|
|
576
|
+
|
|
577
|
+
- [Linear Method: Principles & Practices](https://linear.app/method/introduction)
|
|
578
|
+
- [Linear Docs: Triage](https://linear.app/docs/triage)
|
|
579
|
+
- [Linear Docs: Issue Templates](https://linear.app/docs/issue-templates)
|
|
580
|
+
- [Linear Docs: GitHub Integration](https://linear.app/docs/github-integration)
|
|
581
|
+
- [Linear Docs: Estimates](https://linear.app/docs/estimates)
|
|
582
|
+
- [Linear Docs: Conceptual Model](https://linear.app/docs/conceptual-model)
|
|
583
|
+
|
|
584
|
+
### Case Studies and Blog Posts
|
|
585
|
+
|
|
586
|
+
- [Descript's Internal Guide for Using Linear](https://linear.app/now/descript-internal-guide-for-using-linear)
|
|
587
|
+
- [How Plum Uses Linear](https://build.plumhq.com/how-we-use-linear/)
|
|
588
|
+
- [How to Use Linear: Setup, Best Practices, and Hidden Features Guide (Morgen)](https://www.morgen.so/blog-posts/linear-project-management)
|
|
589
|
+
- [Why I Choose Linear as My Personal Project Management Tool (Jing Su)](https://www.jinghuangsu.com/writing/productivity/solo-project-management-with-linear)
|
|
590
|
+
- [How I Use Linear to Manage Projects at Lunch Pail Labs](https://lunchpaillabs.com/blog/managing-projects-at-lpl-with-linear)
|
|
591
|
+
- [Fast Growing Startups Are Built on Linear (Karri Saarinen)](https://medium.com/linear-app/fast-growing-startups-are-built-on-linear-74511bf96afb)
|
|
592
|
+
- [Building at the Early Stage (Karri Saarinen)](https://medium.com/linear-app/building-at-the-early-stage-e79e696341db)
|
|
593
|
+
|
|
594
|
+
### Guides and Reviews
|
|
595
|
+
|
|
596
|
+
- [Linear Task Management: Organize, Prioritize, and Deliver (Everhour)](https://everhour.com/blog/linear-task-management/)
|
|
597
|
+
- [Linear App Case Study: How to Build a $400M Issue Tracker (Eleken)](https://www.eleken.co/blog-posts/linear-app-case-study)
|
|
598
|
+
- [Mastering Linear: How to Optimize Your Team's Project Management Experience (OneHorizon)](https://onehorizon.ai/blog/linear-app-review)
|
|
599
|
+
- [The Linear Method: Opinionated Software (Figma Blog)](https://www.figma.com/blog/the-linear-method-opinionated-software/)
|
|
600
|
+
- [How Linear Builds Product (Lenny's Newsletter)](https://www.lennysnewsletter.com/p/how-linear-builds-product)
|
|
601
|
+
|
|
602
|
+
### Keyboard Shortcuts
|
|
603
|
+
|
|
604
|
+
- [Linear Keyboard Shortcuts (KeyCombiner)](https://keycombiner.com/collections/linear/)
|
|
605
|
+
- [Linear App Cheat Sheet (ShortcutFoo)](https://www.shortcutfoo.com/app/dojos/linear-app-mac/cheatsheet)
|