-
Notifications
You must be signed in to change notification settings - Fork 175
Google Summer of Code 2026 Ideas List
Currently people can draft and play around with Accord Project Templates either by using their code editors with the Accord Project Extension or using Template-Playground. A person drafting template needs to have the following, legal/domain knowledge, along with the Accord Project Stack knowledge. In this project we aim to use an agentic workflow orchestrator like crew ai, define specialist agents and generate Accord Project Templates just by taking in the template requirements from the user via a CLI or a UI interface.
- Define Agent Personas and Tasks such that they can be used with any agentic workflow orchestrator.
- Integrate tool calling for Accord Project tools like concerto, template-engine to validate the templates (model, text and logic) generated by workflow.
- Option to choose AI models
- CLI interface, similar to gemini-cli or claude code, where user can add their template requirements in natural text.
Backend development: TypeScript, MCP, Python
Sanket Shevkar, Niall Roche
90hrs / 8 weeks
Risky/Exploratory
Medium
Building data models (or schemas) in Concerto is limited today to writing code in a text editor, or using an API. This project aims to create a graphical web editor for Concerto files. This is expected to make it easier to explain the meaning of a data model without teaching syntax. The editor can take inspiration from a traditional UML-like editor or a Blockly-like editor or something else. For reference, see this project which creates web forms from a Concerto schema.
Consider how this editor would be used to describe the data in agreements document or clauses and their templates as well as other non-legal entities. Scope your solution to include basic type composition, and enumerations, but also consider how to represent more advanced modeling capabilities such as inheritance, abstract types, relationships, arrays and maps.
A tool that allow users to:
- Open and edit a Concerto model on a web page
- Integration into Template Playground
Web development, TypeScript, d3, React Flow, Blockly, or similar graphical frameworks
Matt Roberts, Priyanshu Singh
175hrs / 12 weeks
Core development
Medium
Extend Template Playground to support Templates with TypeScript logic. Currently, Template Playground supports merging the agreement data modelled using Concerto with TemplateMark templates to generate AgreementMark output document. In the project, the expectation is to build support to trigger contract logic implemented in Typescript. This repo consists of an example of an Accord Project template with logic.
A tool that allow users to:
- Open and edit templates that contain Template Logic in Template Playground
- Test execution of templates within Playground, submitting requests and seeing responses, state updates and emitted events
Web development, TypeScript
Dan Selman, Sanket Shevkar
175hrs / 12 weeks
Core development
Medium
Extend and harden the APAP and MCP servers, exposing template operations to MCP clients like ChatGPT, Claude etc. Refer to the experimental MCP support to the APAP server that's being already implemented.
Improve the testing, quality and functionality of APAP/MCP servers:
- System tests
- Documentation and tutorials for using APAP/MCP with the major MCP clients
- Functional extensions and developer experience improvements
Backend development: TypeScript, Postgres, MCP
Niall Roche, Dan Selman
175hrs / 12 weeks
Core development
Medium
Current Concerto runtime is based in JavaScript. It can run in browser, and also outside the browser via NodeJS. However, integrating this runtime or components of the runtime in other languages, like C# is extremely hard. Usually requires shimming a JS runtime.
The aim of this project is to port the JavaScript runtime to a language that can be used directly or can produce artefacts suitable for integration to other languages. Rust, with its wide range of compilation targets, as well as ability to use C ABI is a perfect candidate for such task. On top of all that, having a formally provable memory safety as part of the language will add extra security on the runtime.
This is a good project if you want to try your hand in secure-first code with interoperability in mind.
- Port runtime validation logic to Rust. We have a proof of concept structural validation already (concerto-validate-rs), and another PoC for Rust model manager (concerto-rust)
- Update and extend the previous year’s GSoC project, concerto-conformance repository to validate the port. We have the Cucumber support files for Rust in place.
- Integrate validation runtime to existing JS runtime using WASM.
- Create a complete runtime in Rust.
- Publish relevant packages to Cargo.
Backend development: Rust, Typescript
Ertugrul Karademir
175hrs / 12 weeks
Core development
Hard
We have tools that allow users to generate code from their Concerto models, supporting several languages. We would like to introduce a way of testing the correctness of the code generation that compiles code for each language we are generating.
- Set of Docker images for each code generation target
- Run code gen tests within the correct image using GitHub actions, for example, generate Java code that imports the codegen artifacts, and then compile and run it using
javacto ensure the generated code is correct
- Systems engineering, CI/CD
- Docker, Docker compose
- GitHub actions
Ertugrul Karademir
90hrs / 8 weeks
Infrastructure/Automation
Medium
Implement a generic / general purpose template logic executor using an LLM for reasoning. The input to the executor are requests/transaction that represent real-world contract events (modelled Concerto types, with instances as JSON data) and the output from the executor are state changes, response JSON objects and event JSON objects. The generic executor would take the contract text, the current state of the contract and the incoming request and evaluate the logic of the contract using an LLM to produce output objects and new state.
- A generic executor implemented in TypeScript/JS which delegates to a reasoning LLM and can be associated with an Accord Project template that does not have an explicit TypeScript logic file. It should be integrated into the trigger and init functionality in the TemplateArchiveProcessor.
- Configuration parameters to specify how to call the LLM and the API keys to use
- TypeScript
- LLM APIs
Dan Selman
90hrs / 8 weeks
Core development
Medium
Accord Project
A leading Linux Foundation open source initiative developing an ecosystem and open source tools for smart agreements