Linear Views — Recommended Custom Views
Purpose: A single catalog of recommended Linear custom views across Issues, Projects, Initiatives, and Dashboards. Within Issues: hygiene (stale, unowned, overdue), service line / subservice / offering, client & team, phase & cycle. Create via Linear UI (Views → New view; switch tab for Projects/Initiatives/Dashboards) or via script where we have one.
Day 1 onboarding (roles, flows, labels, which views to bookmark first): linear-day-1-guide.md.
References: README.md, linear-cleanup-taxonomy.md, linear-full-cleanup-discovery-report-2026-03-17.md.
Tags and labels needed for views
For the views below to filter correctly, issues and projects need the right labels and initiatives. The canonical label set is in linear-cleanup-taxonomy.md §4 Labels. Summary of what to ensure:
| Purpose | Labels / initiatives to use | Used by views |
|---|---|---|
| Service line | data, ai, strategy-analytics — or initiative = “Data Service” / “A.I Service” / “Strategy Service” | B1 (Service - … views in bulk script), Project/Initiative by service line |
| Phase | phase-0, phase-1, phase-2 (kebab; or “Phase 0” etc. if org standard) | D1 (manual views only — not created by bulk script) |
| Offering | omni, edge-to-activation, dbt-audit, full-data-platform, etc. (match vault folder slug) | B3 (Edge-to-Activation, Omni, dbt Audit, etc.) |
| Subservice (optional) | Canonical: data-platform, data-modeling, reverse-etl, data-strategy, measurement-kpis, reporting-insights, workflow-automation, knowledge-engineering, copilots-agents (see linear-cleanup-taxonomy §4) | B2 (Subservice - … views in bulk script) |
| Operational | ai-assignable, human-only — per linear-labels-ai-human.md | Part E (AI-assignable view) |
| Delivery | client-dependency, internal | Part E (Blocked / client dependency) |
Guidelines: Apply at least one service line label (or link to the right initiative) on every issue/project that belongs to a line. Apply phase labels for Option B / implementation-plan work. Apply offering labels when the work is scoped to a specific offering (Omni, E2A, dbt Audit, etc.). Create missing labels in Linear when running cleanup; do not remove existing capability labels (e.g. cap-, ops-) unless consolidating.
Issues views (default tab)
The sections below (A–E) are Issues views. In Linear, create them with the Issues tab selected in Views.
Bulk script — persona prefixes
apps/platform/scripts/create-linear-views-bulk.ts syncs shared issue views whose names start with [HoD], [CSO], [SL], or [IC] so the sidebar groups when sorted alphabetically:
| Prefix | Who | What |
|---|---|---|
[HoD] | Head of Delivery | Workspace-wide portfolio hygiene (stale, unowned, no project, overdue, due dates, no cycle) and per internal team execution lenses (Platform, Delivery, GTM, …). |
[CSO] | Client success / account lead | Per client team lenses (active, unowned, no project, overdue, due this week, client dependency, stale 4w) plus workspace Blocked — client dependency. |
[SL] | Service Lead | Cross-workspace label views: service line, subservice, and key offerings (roster / Operating). |
[IC] | Individual contributor | Cross-team slices such as AI-assignable. Use Linear’s built-in My issues for assignee = you. |
Config: clientTeams and internalTeams in apps/platform/scripts/linear-views-teams.config.json. Cleanup: after upgrading from the old unprefixed catalog, run once with --prune-legacy to remove legacy view names (see script header).
The filter ideas in Parts A–E below match the bulk script; saved view titles in Linear include the prefix where the script adds it.
Part A — Hygiene (tidy, triage, stale)
A1. Stale / not touched
| View name | Filter idea | Why |
|---|---|---|
[HoD] Active — not updated in 4 weeks | State ≠ Done/Canceled and Updated < 4 weeks ago | Open work that’s gone cold; update, close, or archive. (Also: standalone create-linear-view-not-updated-4-weeks.ts without prefix if you maintain a duplicate.) |
[HoD] Backlog — not updated in 8 weeks | State = Backlog (or similar) and Updated < 8 weeks ago | Old backlog; candidates for archive or “Won’t do” (bulk script). |
[HoD] In progress — not updated in 2 weeks | State = In progress and Updated > 2 weeks ago | Stuck in-progress work (bulk script). |
A2. Unowned / untriaged
| View name | Filter idea | Why |
|---|---|---|
[HoD] Active — no assignee | State ≠ Done/Canceled and Assignee is empty | Unowned open work, all teams (bulk script). |
[HoD] Active — no project | State ≠ Done/Canceled and Project is empty | Orphan issues, all teams (bulk script). |
A3. Planning / overdue
| View name | Filter idea | Why |
|---|---|---|
[HoD] Overdue | Due date < today and State ≠ Done/Canceled | Missed due dates, all teams (bulk script). |
[HoD] Due this week | Due date in next 7 days and State ≠ Done/Canceled | Short-term focus, all teams (bulk script). |
[HoD] Active — no due date | In progress / Triage / unstarted and No due date | In-flight work without a date (bulk script). |
A4. Long-lived open work
| View name | Filter idea | Why |
|---|---|---|
[HoD] Open — older than 90 days | Created > 90 days ago and State ≠ Done/Canceled | Very old open issues (bulk script). |
Part B — Service line, subservice, offering
Aligns to README.md: Service line → Subservice → Offering. In Linear, service lines map to initiatives (e.g. “Data Service”, “A.I Service”, “Strategy Service”); offerings may be initiatives or labels (e.g. omni, edge-to-activation). Subservices are grouping only in vault; in Linear use initiative + project naming or labels if you add them.
B1. By service line
| View name | Filter idea | Why |
|---|---|---|
[SL] Service - Data — all active | Label data and State ≠ Done/Canceled | All active Data line work (bulk script). |
[SL] Service - AI — all active | Label ai and State ≠ Done/Canceled | All active AI line work. |
[SL] Service - Strategy & Analytics — all active | Label strategy-analytics and State ≠ Done/Canceled | All active Strategy & Analytics work. |
Manual / alternate: same filters with initiative = “Data Service” / “A.I Service” / “Strategy Service” if you prefer initiative over labels. Match initiative names to your workspace (e.g. “Data Service” vs “Data”).
B2. By subservice (when tagged)
Subservices: Data → data-platform, data-modeling, reverse-etl; Strategy & Analytics → data-strategy, measurement-kpis, reporting-insights; AI → workflow-automation, knowledge-engineering, copilots-agents. Bulk views use these canonical Linear labels. Older issues may still use data-infrastructure, analytics-bi, metrics-kpis, or ai-infrastructure; relabel or add a temporary legacy view if needed. reverse-etl is documented in services README Decision 6 (proposal pending HoD).
| View name | Filter idea | Why |
|---|---|---|
[SL] Subservice - Data Platform | Label data-platform and Active | Data Platform work (bulk script). |
[SL] Subservice - Data Modeling | Label data-modeling and Active | Marts, semantic layer, modeling (bulk script). |
[SL] Subservice - Reverse ETL | Label reverse-etl and Active | Warehouse→destination syncs, retainer reverse ETL (add to bulk script when label exists). |
[SL] Subservice - Data Strategy | Label data-strategy and Active | Roadmap, advisory, planning (bulk script). |
[SL] Subservice - Measurement & KPIs | Label measurement-kpis and Active | KPI frameworks, attribution (bulk script). |
[SL] Subservice - Reporting & Insights | Label reporting-insights and Active | Dashboards, recurring reporting (bulk script). |
[SL] Subservice - Workflow Automation | Label workflow-automation and Active | AI-enabled automation (bulk script). |
[SL] Subservice - Knowledge Engineering | Label knowledge-engineering and Active | Grounding, retrieval, knowledge systems (bulk script). |
[SL] Subservice - Copilots & Agents | Label copilots-agents and Active | Copilots, agents (bulk script). |
Manual / alternate: add initiative + project-name contains … filters in Linear UI if you need tighter scoping than label alone.
Adjust to your actual initiative/label/project naming.
B3. By offering
| View name | Filter idea | Why |
|---|---|---|
[SL] Edge-to-Activation | Initiative = “Edge-to-Activation - Service” or label edge-to-activation and Active | All E2A work (bulk script uses label filter). |
[SL] Omni Zero-to-One | Label omni or project name contains “Omni” and Active | All Omni engagement work (bulk script uses label). |
| dbt Audit | Project in initiative “Data Service” and project name contains “dbt Audit” (or label dbt-audit) and Active | dbt Audit engagements. |
| (one per key offering) | Initiative or label or project pattern | Pipeline and delivery by offering. |
Part C — Client & team
C1. By client (delivery) — [CSO] kit
Bulk script adds one client team per row in linear-views-teams.config.json → clientTeams. For each client label (e.g. LMNT, CTA), these saved view names are synced:
| View name (pattern) | Filter idea | Why |
|---|---|---|
[CSO] [Client] — active | Team = [Client] and State ≠ Done/Canceled | Default account backlog. |
[CSO] [Client] — no assignee | Team + active + assignee empty | Unowned client work. |
[CSO] [Client] — no project | Team + active + no project | Orphan issues on the account. |
[CSO] [Client] — overdue | Team + active + due before today | Missed dates on the account. |
[CSO] [Client] — due this week | Team + active + due in 7 days | Near-term client commitments. |
[CSO] [Client] — client dependency | Team + active + label client-dependency | Waiting on the client. |
[CSO] [Client] — stale 4 weeks | Team + active + not updated in 4 weeks | Cold account work. |
Add or remove clients by editing clientTeams in the JSON (each needs the correct Linear team key, e.g. LMN for LMNT).
C2. By internal team — [HoD] kit
Bulk script adds one internal team per row in internalTeams. For each internal label (e.g. Platform, Delivery, GTM):
| View name (pattern) | Filter idea | Why |
|---|---|---|
[HoD] [Team] — active | Team = [Internal] and Active | Internal execution backlog. |
[HoD] [Team] — no assignee | Team + active + assignee empty | Unowned internal work. |
[HoD] [Team] — overdue | Team + active + past due | Internal date risk. |
[HoD] [Team] — no project | Team + active + no project | Orphans on that internal team. |
Other internal teams (Sales, Marketing, Operations, …): add them to internalTeams in the JSON when you want the same four lenses.
Part D — Phase & cycle
D1. By implementation phase (Option B / SOW)
Not created by create-linear-views-bulk.ts. Add manually in Linear if you want saved phase views.
| View name | Filter idea | Why |
|---|---|---|
| Phase 0 | Label phase-0 and State ≠ Done/Canceled | Audit / discovery phase work. |
| Phase 1 | Label phase-1 and State ≠ Done/Canceled | Pilot / first delivery. |
| Phase 2 | Label phase-2 and State ≠ Done/Canceled | Scale / accelerator. |
Use label names that match taxonomy (e.g. phase-0, phase-1, phase-2 or “Phase 0”, “Phase 1”, “Phase 2”).
D2. By cycle (if using Linear cycles)
| View name | Filter idea | Why |
|---|---|---|
| This cycle | Cycle = current and State ≠ Done/Canceled | Current sprint/cycle scope. |
[HoD] No cycle | Cycle is empty and State ≠ Done/Canceled | Work not yet scheduled in a cycle (bulk script; workspace-wide). |
Part E — Other useful views
| View name | Filter idea | Why |
|---|---|---|
[IC] AI-assignable | Label ai-assignable and Active (allowed statuses per policy) | Agent-eligible work (per linear-labels-ai-human.md); bulk script. |
[CSO] Blocked — client dependency | Label client-dependency and Active (workspace-wide) | Cross-account chase list; bulk script. |
| My issues | Assignee = me and State ≠ Done/Canceled | Personal backlog. |
| Led by [name] | Project lead = [person] and Active | Work led by a specific lead (projects view). |
Project views (Views → Projects tab)
Create these with the Projects tab selected in Linear Views. Filters apply to projects (state, team, initiative, lead, etc.).
| View name | Filter idea | Why |
|---|---|---|
| Active projects | Project state = In progress (or Started) | All projects currently in flight. |
| Backlog & planned | Project state = Backlog or Planned | Upcoming work; roadmap. |
| By service line | Initiative = “Data Service” / “A.I Service” / “Strategy Service” | Projects grouped by line (Data, AI, Strategy & Analytics). |
| By team | Team = [LMNT / Platform / Delivery / …] | Projects by client or internal team. |
| No initiative | Initiative is empty | Projects not yet tied to a service line or offering; triage. |
| Led by [name] | Project lead = [person] | Ownership view. |
Initiative views (Views → Initiatives tab)
Create these with the Initiatives tab selected. Filters apply to initiatives (state, team, etc.).
| View name | Filter idea | Why |
|---|---|---|
| Service lines | Initiative name in [“Data Service”, “A.I Service”, “Strategy Service”] and Active | Internal service-line initiatives. |
| Client workstreams | Initiative name contains " | " (e.g. “LMNT |
| Offerings | Initiative name in [“Edge-to-Activation - Service”, …] and Active | Offering-level initiatives. |
| Active initiatives | State = Active (or equivalent) | All live initiatives; portfolio view. |
Dashboard views (Views → Dashboards tab)
Linear Dashboards are custom dashboards (charts, lists, filters). Use the Dashboards tab to create and organize them. Use for:
- Health: e.g. issue count by state, overdue count, cycle burndown.
- Delivery: issues by team, by initiative, by project; project progress.
- Hygiene: e.g.
[HoD]stale / no-project widgets,[CSO]per-client overdue counts.
No fixed view list here; create dashboards that combine the Issue/Project/Initiative filters above into a single screen.
Implementation notes
- “Active” = workflow state type not
completedand notcanceled(unstarted, started, etc.). - Relative dates:
-P4W= 4 weeks ago,-P8W= 8 weeks ago,-P90D= 90 days ago. - Initiative vs label: Service-line and offering views work best once initiatives and labels match the taxonomy (see linear-cleanup-taxonomy). If names differ (e.g. “A.I Service” vs “AI”), use the initiative/label names that exist in your workspace.
- Scripts: Issue views —
npx tsx scripts/create-linear-views-bulk.ts(fromapps/platform) syncs shared views (default config: 51 = 10[HoD]global + 1[CSO]global + 7 × NclientTeams+ 4 × MinternalTeams+ 13[SL]+ 1[IC]): creates missing, updates existing by name, and deletes duplicate copies of those names (keeps newest). Persona prefixes[HoD]/[CSO]/[SL]/[IC]— see Bulk script — persona prefixes. Config:linear-views-teams.config.json(clientTeams,internalTeams).--prune-legacy— removes old unprefixed view names once after upgrading. No phase views (D1) — add manually. Duplicate names:dedupe-linear-custom-views.ts. Blank slate:list-and-delete-linear-views.ts --deletethen re-run bulk script. Single-view script:create-linear-view-not-updated-4-weeks.ts. Project, Initiative, and Dashboard views are manual in Linear. - Update existing view: Run the create script with
LINEAR_VIEW_ID=<id>to update that view. - Blank slate:
list-and-delete-linear-views.ts --deleteremoves all custom views; then re-runcreate-linear-views-bulk.ts(and optionally the standalonecreate-linear-view-not-updated-4-weeks.tsif you want a second stale view without the[HoD]prefix).