mirror of
https://github.com/rohitg00/ai-engineering-from-scratch.git
synced 2026-10-02 01:54:39 +08:00
* feat(phase-13/22): teach portable agent skill contracts Agent skills need a portable contract before host-specific metadata and runtime policy can be reasoned about. * fix(phase-13/23): make the ecosystem capstone accurate The capstone should model current A2A operations, portable artifact metadata, and deterministic trace timing. * feat(phase-13/24): teach skill discovery and disclosure A useful skill catalog needs explicit scope precedence and bounded progressive disclosure before instructions are loaded. * feat(phase-13/25): teach invocation policy and routing Human, model, application, and skill activation need separate policy decisions before relevance ranking can be trusted. * feat(phase-13/26): teach skill sandbox and trust boundaries Skill instructions are untrusted input, so authority must remain host-owned and every filesystem, network, and command boundary must fail closed. * feat(phase-13/27): add the skill release gate A distributable skill needs adversarial structure, routing, safety, artifact, provenance, installation, and portability evidence before release. * feat(skills): install and render complete skill bundles Progressive-disclosure skills must keep companion references, scripts, assets, and evals intact across discovery, installation, and lesson rendering. * docs(curriculum): index the agent skills mini-course The expanded Phase 13 sequence needs consistent lesson links, durations, translations, and shared terminology across every learner entry point. * feat(certification/11): teach stateless MCP integration Certification learners need the same stateless wire model as the production curriculum. * feat(phase-11/14): modernize MCP protocol contracts The foundational MCP lesson must no longer teach the removed session lifecycle. * fix(phase-13/01): align tool terms with stateless MCP The tool interface introduction should point to the current protocol vocabulary. * feat(phase-13/06): teach stateless MCP fundamentals Learners need the current per-request contract before building clients or servers. * feat(phase-13/07): build a stateless MCP server The server lab should model the protocol that new implementations actually ship. * feat(phase-13/08): build a stateless MCP client The client lab must negotiate every request without relying on session state. * feat(phase-13/09): teach current Streamable HTTP Transport examples need the current POST-only lifecycle and notification behavior. * feat(phase-13/10): teach stateless resources and prompts Resource and prompt discovery must reflect stateless cache and result contracts. * feat(phase-13/11): teach per-request sampling Sampling calls must carry current capabilities and stateless response semantics. * feat(phase-13/12): teach roots and elicitation retries Elicitation retries and roots handling need current capability and MRTR boundaries. * feat(phase-13/13): teach stateless MCP tasks Task storage and subscriptions must survive cross-instance stateless requests. * feat(phase-13/14): update MCP Apps contracts Apps learners need current bridge, subscription, and discovery boundaries. * feat(phase-13/15): update MCP threat boundaries Threat modeling must cover current routing and MRTR state boundaries. * feat(phase-13/16): update MCP OAuth contracts OAuth examples must bind issuers and resources while using current errors. * feat(phase-13/17): update gateway and registry contracts Registry admission must separate publication identity from runtime discovery. * feat(phase-13/18): teach production MCP authentication Production auth should implement real PKCE, CIMD, and resource-bound caching. * docs(phase-13/22): add a runnable skill quickstart Beginners need an exact repository-root path from bundle inspection to host use. * fix(phase-13/23): make the capstone stateless The ecosystem capstone must compose the same current contracts taught upstream. * docs(phase-13/24): clarify host discovery limits Learners should distinguish known context budgets from host fallback behavior. * docs(phase-13/26): clarify sandbox prerequisites The safety lab needs explicit prerequisites and a viable conceptual fallback. * docs(phase-13/27): add real-host release evidence A production claim should require installed-host evidence beyond deterministic fixtures. * docs(phase-16/02): update MCP legacy comparison The interoperability comparison should use the current stateless MCP lifecycle. * feat(phase-19/13): modernize the MCP registry capstone The production capstone must separate Registry publication from stateless runtime discovery. * docs(curriculum): index agent skills and stateless MCP Learners need one coherent route through the skills track and current MCP sequence. * feat(skills): add a focused agent skills learner path A dedicated route removes placement and navigation friction for focused learners. * feat(mcp): add production engineering track * fix(cert-11): harden MCP integration contract * fix(phase-11-14): classify MCP handler failures * fix(mcp-07): validate JSON-RPC request identifiers * fix(mcp-08): reuse strict response decoding * fix(mcp-09): harden HTTP transport boundaries * fix(mcp-11): isolate returned tool descriptors * fix(mcp-12): make continuation state single-use * fix(mcp-14): align lesson response metadata * fix(mcp-15): expire and consume continuation state * fix(mcp-16): bind OAuth enrollment and code exchange * fix(mcp-18): enforce redirect and code lifetimes * fix(mcp-23): validate task identifiers * fix(skills-24): clarify discovery boundaries * fix(skills-25): deny unknown invocation actors * fix(skills-26): validate approval policy shape * fix(mcp-28): terminate unsafe cursor pagination * fix(mcp-29): preserve completed request state * fix(mcp-30): require secure remote endpoints * fix(mcp-31): strengthen conformance checks * fix(agent-skills): align route prerequisites * fix(scripts): harden skill bundle installation * fix(site): validate learning and artifact boundaries * fix(course): address review edge cases * fix(mcp): tighten notification and redirect validation * fix(mcp): secure reproducible lesson state * fix(mcp): use required lesson header comments
3.5 KiB
3.5 KiB
name, description, version, phase, lesson, tags
| name | description | version | phase | lesson | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| elicitation-form-designer | Design explicit resource scope and stateless MCP 2026-07-28 elicitation with authorization, safe forms, and signed retry state. | 2.0.0 | 13 | 12 |
|
Design a user-input step for an MCP operation targeting protocol revision 2026-07-28.
Produce:
- Scope contract. Put the workspace, directory, or resource URI in visible tool arguments or server configuration. State which authenticated principals may use it.
- Boundary checks. Define URI normalization, path-component containment, symbolic-link policy, and the operating-system sandbox.
- Trigger condition. Name the exact ambiguity, confirmation, or external interaction that requires user input.
- Discovery and capability gate. Return exact
supportedVersions, capabilities,ttlMs, andcacheScopefromserver/discover. If tools are advertised, include mandatory deterministictools/listdescriptors with a valid objectinputSchema, server identity metadata, and cache hints. Treatelicitation: {}and explicitelicitation.formas form support. Reject missing or URL-only support with-32021anddata.requiredCapabilities.elicitation.form; use-32022with exactsupportedandrequesteddata for an unsupported version. - MRTR result. Return
resultType: "input_required"with a stableinputRequestskey andelicitation/createrequest. - Interaction design. For form mode, provide a plain message and restricted flat schema. For URL mode, show the HTTPS destination and out-of-band completion rule.
- Retry contract. Require a fresh JSON-RPC id, original method and arguments, current
inputResponses, per-request_meta, and exactrequestStateecho. An id-less notification never receives a JSON-RPC result or error; an accepted Streamable HTTP notification receives202with no body. - Branch handling. Map
accept,decline, andcancelto different safe outcomes. - State protection. Bind HMAC or authenticated encryption to the authenticated principal, original argument digest, candidate set, operation phase, expiry, and one-time nonce. Consume the nonce atomically in a bounded, TTL-pruned replay store shared by every handler instance.
- Final revalidation. Re-check authorization, live record state, and containment immediately before mutation.
Hard rejects:
- Treating deprecated Roots as authorization, containment, or sandboxing.
- Using
roots/listornotifications/roots/list_changedin a new 2026-07-28 design. - Sending a reverse
elicitation/createrequest instead of returning it through MRTR. - Collecting passwords, API keys, access tokens, or payment credentials in form mode.
- Sending an elicitation mode absent from current per-request capabilities.
- Treating
clientInfoas an authenticated user identity. - Performing a destructive action before validated acceptance and final authorization checks.
- Unsigned
requestStatethat carries candidates or permission-relevant data.
Refusal rules:
- Refuse repeated prompts after explicit decline.
- Refuse elicitation for a value the server can derive or validate without the user.
- Refuse a URL that contains credentials, user secrets, or a pre-authenticated bearer value.
- Refuse a request that uses hidden protocol-session state,
initialize, orMcp-Session-Id.
Output a one-page design with scope, authorization, containment, interaction mode, schema or URL, MRTR wire shape, state fields, response branches, replay policy, and final revalidation checklist.