define core frame vs shipped extension boundary (D-046)
Core frame builtins are infrastructure the shell can't function without. Content extensions (editor, claude, canvas, etc.) are bundled but architecturally removable — users swap the surface, not the data. Removes builtin.jira stub: Jira belongs as a third-party extension, not a frame builtin. Git is a split component — daemon-side process stays in frame, UI surfaces are extensions. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1 +0,0 @@
|
||||
export 'src/extension.dart';
|
||||
@@ -1,17 +0,0 @@
|
||||
import 'package:clide_app/extension/extension.dart';
|
||||
|
||||
/// Tier-0 stub. Real implementation lands in a later tier; the extension
|
||||
/// is registered so the extensions-ui surface can list it as "installed,
|
||||
/// not yet implemented" and its id is reserved.
|
||||
class JiraExtension extends ClideExtension {
|
||||
@override
|
||||
String get id => 'builtin.jira';
|
||||
@override
|
||||
String get title => 'Jira';
|
||||
@override
|
||||
String get version => '0.0.0-stub';
|
||||
@override
|
||||
List<String> get dependsOn => const [];
|
||||
@override
|
||||
List<ContributionPoint> get contributions => const [];
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
///
|
||||
/// Admission rule: the kernel owns anything whose second concurrent user
|
||||
/// would create incoherent state or divergent UX. External-interfacing
|
||||
/// work generally belongs to extensions (git, pql, Linear, Jira);
|
||||
/// work generally belongs to extensions (git, pql, Linear);
|
||||
/// external-interfacing *singletons* (OS clipboard, tray, keychain)
|
||||
/// belong here.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user