Author: @bumblefudge, @samuelgoto Created: 09/26/2024 Last update: 09/26/2024 Status: proposed CG charter amendment
This is a proposal to break proposals into 5 stages of maturity, with clear guidelines and requirements to advance them:
- Stage 0: Exploration of a Problem Space and/or user stories
- Stage 1: Incubation of targeted candidate solutions
- Stage 2: Formalization a preferred Proposal
- Stage 3: Implementation of the preferred Proposal
- Stage 4: Publication of a Proposed Recommendation
These stages support the W3C process. If there is ever any question between W3C process requirements and how the groups will progress their work, the W3C process has precedent.
The purpose of Stage 0 proposals is to allow anyone to raise and explore the Problem Space without asking for permission.
- What's needed from individuals?
- Typically, a detailed (but IP-safe, high-level) issue describing a user
story or problem
- Minimally, a personal repo, a blog post with examples, a mock-up, etc.
- Maximally, an end-to-end prototype worked on in community venues
- Typically, a detailed (but IP-safe, high-level) issue describing a user
story or problem
- Who is involved?
- CG meeting time should be minimally requested except in the form of "announcements" about progress at this stage
- CG Mailing List is an appropriate place for high-level or user-story discussion.
- It is also recommended that community venues like SocialHub, Indieweb.org Brainstorming, Fediverse Ideas, or the social web itself be used to gather more input and to poll interest.
- Descriptive specifications of a prototype (whether as a drafting exercise or
as an invitation to prototype interoperability) can be hosted on git forges,
including community venues like the Fediverse Enhancement
Proposals.
- The CG may request this kind of preliminary community and implementer feedback according to the pre-existing 3-stage Standardization Process Proposal, particularly for extensions to the protocol's required Vocabularies (see the ActivityPub/ActivityStreams-specific Vocabulary Extension Policy)
- Other Social Web Protocols may also ask for implementer feedback at this stage
- What's the optimal outcome?
- Objective, open description of a problem or user story [set] that is within scope of the CG
- IP Safety of work done outside the CG (best insured by keeping discussions and prototyping high-level and application-specific, and postponing considerations of protocol engineering and efficiency)
- A champion to gather and synthesis feedback, from outside the CG and to coordinate with the CG for review and future stages of work
The purpose of Stage 1 proposals is to explore the Solution Space and evaluate multiple candidate solutions fairly. This is where most of the work gets done because it involves exploring alternatives, understanding tradeoffs, gathering implementation experience, incubating alternatives, gathering evidence of demand and fitness for purpose, and finally, identifying the best out of the many alternatives.
Great care should be taken to avoid substantial technical/design discussions happening outside the "IPR" boundary of the Community Group members if normative status beyond stage 1 is desired; further standardization MUST be rejected if "clean IPR" cannot be achieved (e.g. by post-facto IP grants from all substantial contributors).
- What's needed from champions?
- Public identification of one or more champions
- An understanding of the problem space (need not be deeply technical)
- Familiarity with prior art and related parallel work
- What's asked of the Community Group?
- The Community Group consensus that the problem is worth spending the Community Group’s time working on
- A home for incubating the proposal. Small features will incubate in issues. If and when the champions are ready to more thoroughly document their proposal, the WG chairs will create a repo for the champions to develop the feature or proposal (e.g., example).
The purpose of Stage 2 Proposals is to formally specify one or more (workable) candidate solutions identified in the prior step: handle corner cases, integrate with other parts, reconcile with other proposals, and resolve the concerns identified at the entrance. The Proposal enters Stage 2 with a list of blocking issues to advance to the next stage and exits with all of the issues resolved and CG consensus on a CG Report.
- What's needed from champions?
- An explainer
- Alternatives and trade-offs considered (an overview of useful discussions on and off CG venues appreciated)
- A specific preferred proposal, e.g., a Report draft, which can include code samples, examples, etc.
- Developer implementation experience (e.g., a prototype, interop experiments, etc)
- Confidence of developer demand and fitness for purpose (e.g. a developer or forker of a complete implementation that needs this proposal)
- What's asked of the Working Group?
- Working Group consensus to adopt the proposal as the basis for their work as a Working Draft.
- Working Group identification of the list of (seemingly resolvable) issues that have to be addressed before Stage 3.
- An Editor's Draft can be used to get PRs merged between Working Draft revisions.
The purpose of Stage 3 Proposals is to increase implementation and deployment confidence in order to move from CG report to a complete draft of a Candidate Recommendation.
- What's needed from champions?
- Expanded Report (i.e. first draft of a Recommendation) and/or PR to
extend or update Social Web normative specs
- Conformance sections and initial Privacy and Security Considerations
- Runnable Tests and test case documentation (ideally more formal than pseudocode)
- Further implementation experience, ideally diverse and external
- Expanded Report (i.e. first draft of a Recommendation) and/or PR to
extend or update Social Web normative specs
- What's asked of the Working Group?
- Working Group consensus that the Working Draft sufficiently resolves all of the issues raised at Stage 2
- Working Group consensus to publish the Working Draft as the Working Group's Candidate Recommendation
The purpose of Stage 4 Proposals is to produce a new W3C Recommendation or a new minor or major version of a prior one.
- What's needed from champions?
- Sufficient implementation experience
- Two or more independent and complete implementations
- Implementation reports and corresponding conformance reports for each
- What's asked of the Working Group?
- Working Group consensus that the Candidate Recommendation's implementation experience is complete and
- Working Group consensus to publish it as a Proposed Recommendation
- Social CG precedents:
- Evan Promodorou's ActivityPub/ActivityStreams-specific Vocabulary Extension Policy
- A. Schrijver 3-stage Standardization Process Proposal
- Indieweb Living Standard Process (see github discussion here)
- TC39
- Immersive Web CG/WG
- WebAssembly
- WA Proposals
- Examples: