Skip to content

[initiative]: Deliver clean portable Zsh plugin architecture #556

Description

@ss-o

Outcome

Publish and enforce a clean, portable Zsh Plugin Standard that gives plugin
authors one maintainable set of rules for repository layout, configuration,
namespaces, public shell surface, loading, and exact lifecycle ownership.

When complete, maintained z-shell plugins use the same portable contract. The
contract contains no legacy compatibility mode for shared Plugins state,
scattered public configuration parameters, generic persistent functions, or
unowned load-time effects.

Context

The current public standard is strong on plugin-manager interoperability and
Zsh semantics, but it does not completely define the architectural decisions
that make a multi-plugin ecosystem predictable to users and contributors.
Current organization templates, static analysis, runtime tests, and active
plugin implementations therefore permit different configuration and state
shapes despite sharing a namespace rule.

This initiative coordinates the public standard, static and runtime
enforcement, organization scaffolding, and the first conforming plugin
implementation without creating a private z-shell-only technical standard.

Expected deliverables

  • z-shell/wiki: publish the revised portable standard through the active H2
    review issue.
  • z-shell/zsh-lint: enforce high-confidence static project-contract rules.
  • z-shell/zunit: provide reusable runtime lifecycle assertions.
  • z-shell/.github: adopt the contract in policy, templates, review guidance,
    routing, and CI requirements.
  • z-shell/zsh-fancy-completions: make PR build(deps): bump github/codeql-action from 2.1.32 to 2.1.33 #62 the clean-break pilot with
    namespaced zstyle configuration and exact ownership restoration.
  • Maintained plugin repositories: migrate through separately owned issues and
    pull requests after the pilot proves the contract.

Dependencies and risks

The public standard decision blocks enforcement design. Released static and
runtime tooling blocks organization-required pins and the pilot migration.
Organization adoption blocks the wider repository rollout.

Risks include false-positive static rules, lifecycle observers that mutate the
shell while taking snapshots, and over-standardizing implementation details
that do not affect interoperability. Each rule therefore needs official Zsh
evidence, deterministic fixtures, and an explicit portable rationale.

Completion criteria

  • The canonical public standard defines the complete portable contract.
  • Static and runtime enforcement are released and immutably pinned.
  • Organization templates produce a conforming plugin without cleanup.
  • PR build(deps): bump github/codeql-action from 2.1.32 to 2.1.33 #62 passes the new contract with no legacy compatibility surface.
  • Every maintained plugin has migrated or has an explicit tracked blocker.
  • Required deliverables are complete or explicitly descoped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:metaOrganization-wide policy, templates, or meta-repo work.meta:initiativeMarks a parent issue coordinating two or more independently deliverable sub-issues.meta:org-trackedIndicates this issue has cross-repository tracking implications (synced to Linear).status:triageAwaiting initial review or classification.type:maintenanceNon-feature maintenance, cleanup, or org work.

    Type

    No type

    Projects

    Status
    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions