update CLAUDE.md and reserve decision/ticket/claude-control slots
test / unit + widget + golden + a11y (push) Successful in 4m34s
test / integration_test (xvfb) (push) Failing after 1m4s
test / bundle smoke (xvfb 5s) (push) Failing after 58s
test / daemon subprocess + web WASM smoke (push) Successful in 2m27s
test / unit + widget + golden + a11y (push) Successful in 4m34s
test / integration_test (xvfb) (push) Failing after 1m4s
test / bundle smoke (xvfb 5s) (push) Failing after 58s
test / daemon subprocess + web WASM smoke (push) Successful in 2m27s
CLAUDE.md gains a "Decision discipline" guardrail pointing at
decisions/<domain>.md, rewrites every inline ADR link to the new
anchor-link style (ADR 0001 → D-001, etc.), collapses the bottom
"Open questions" section to a one-line pointer, and updates the
parent-project note to reference decisions/architecture.md instead
of the deleted docs/ADRs/.
Three extension slots are reserved with id-only stubs, registered
alongside the existing 21 built-ins in main.dart:
- builtin.decisions — future sidebar for D/Q/R records
- builtin.tickets — future sidebar + kanban workspace
- builtin.claude-control — future .claude/ first-class surface
(Settings / Skills / Agents / Hooks / MCP). Distinct from the
existing builtin.claude PTY-pane stub.
`flutter analyze` clean; builtin + a11y test suites still pass.
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
export 'src/extension.dart';
|
||||
@@ -0,0 +1,23 @@
|
||||
import 'package:clide_app/extension/extension.dart';
|
||||
|
||||
/// Tier-reserved stub. Will surface a sidebar tab with sub-tabs
|
||||
/// Settings / Skills / Agents / Hooks / MCP — `.claude/` as a
|
||||
/// first-class IDE surface. Orthogonal to pql; purely clide-internal.
|
||||
/// Commands: `claude.settings.open`, `claude.skills.new`,
|
||||
/// `claude.skills.edit`, `claude.agents.new`, `claude.agents.edit`,
|
||||
/// `claude.hooks.log`, `claude.mcp.status`.
|
||||
///
|
||||
/// Distinct from `builtin.claude`, which is reserved for Tier 1's
|
||||
/// "run Claude Code in a PTY pane."
|
||||
class ClaudeControlExtension extends ClideExtension {
|
||||
@override
|
||||
String get id => 'builtin.claude-control';
|
||||
@override
|
||||
String get title => 'Claude control';
|
||||
@override
|
||||
String get version => '0.0.0-stub';
|
||||
@override
|
||||
List<String> get dependsOn => const [];
|
||||
@override
|
||||
List<ContributionPoint> get contributions => const [];
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export 'src/extension.dart';
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'package:clide_app/extension/extension.dart';
|
||||
|
||||
/// Tier-reserved stub. Will surface a sidebar tab (filter by domain /
|
||||
/// status, backlinks from current file) + commands (`decisions.open`,
|
||||
/// `decisions.claim`, `decisions.amend`). Data source: `pql decisions
|
||||
/// …` once `Q-021` resolves; `tools/scripts/plan decisions …` until
|
||||
/// then.
|
||||
class DecisionsExtension extends ClideExtension {
|
||||
@override
|
||||
String get id => 'builtin.decisions';
|
||||
@override
|
||||
String get title => 'Decisions';
|
||||
@override
|
||||
String get version => '0.0.0-stub';
|
||||
@override
|
||||
List<String> get dependsOn => const [];
|
||||
@override
|
||||
List<ContributionPoint> get contributions => const [];
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import 'package:clide_app/extension/extension.dart';
|
||||
|
||||
/// Tier-reserved stub. Will surface a sidebar tab (filtered list) + a
|
||||
/// workspace tab (kanban board) + commands (`tickets.open`,
|
||||
/// `tickets.new`, `tickets.move`, `tickets.block`). Data source: `pql
|
||||
/// ticket …` once `Q-021` resolves; `tools/scripts/plan ticket …` until
|
||||
/// then. Ticket persistence strategy open at `Q-022`.
|
||||
class TicketsExtension extends ClideExtension {
|
||||
@override
|
||||
String get id => 'builtin.tickets';
|
||||
@override
|
||||
String get title => 'Tickets';
|
||||
@override
|
||||
String get version => '0.0.0-stub';
|
||||
@override
|
||||
List<String> get dependsOn => const [];
|
||||
@override
|
||||
List<ContributionPoint> get contributions => const [];
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export 'src/extension.dart';
|
||||
+7
-1
@@ -1,6 +1,8 @@
|
||||
import 'package:clide_app/app.dart';
|
||||
import 'package:clide_app/builtin/canvas/canvas.dart';
|
||||
import 'package:clide_app/builtin/claude/claude.dart';
|
||||
import 'package:clide_app/builtin/claude_control/claude_control.dart';
|
||||
import 'package:clide_app/builtin/decisions/decisions.dart';
|
||||
import 'package:clide_app/builtin/default_layout/default_layout.dart';
|
||||
import 'package:clide_app/builtin/diff/diff.dart';
|
||||
import 'package:clide_app/builtin/editor/editor.dart';
|
||||
@@ -18,6 +20,7 @@ import 'package:clide_app/builtin/problems/problems.dart';
|
||||
import 'package:clide_app/builtin/settings_ui/settings_ui.dart';
|
||||
import 'package:clide_app/builtin/terminal/terminal.dart';
|
||||
import 'package:clide_app/builtin/theme_picker/theme_picker.dart';
|
||||
import 'package:clide_app/builtin/tickets/tickets.dart';
|
||||
import 'package:clide_app/builtin/todos/todos.dart';
|
||||
import 'package:clide_app/builtin/welcome/welcome.dart';
|
||||
import 'dart:io' show Directory, Platform;
|
||||
@@ -75,7 +78,10 @@ Future<void> main() async {
|
||||
..register(GraphExtension())
|
||||
..register(SettingsUiExtension())
|
||||
..register(ExtensionsUiExtension())
|
||||
..register(KeybindingsUiExtension());
|
||||
..register(KeybindingsUiExtension())
|
||||
..register(DecisionsExtension())
|
||||
..register(TicketsExtension())
|
||||
..register(ClaudeControlExtension());
|
||||
|
||||
await services.extensions.activateAll();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user