-
Notifications
You must be signed in to change notification settings - Fork 0
docs: add indexed paralegal research library #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| # Repository agent instructions | ||
|
|
||
| This repository contains draft license text and preliminary legal research. It | ||
| does not provide legal advice, and an agent's research is not an adoption or | ||
| licensing decision. | ||
|
|
||
| For any request involving license interpretation, enforcement, infringement, | ||
| remedies, litigation, statutes, cases, or legal strategy: | ||
|
|
||
| 1. Read `paralegal-research/AGENTS.md` completely. | ||
| 2. Check `paralegal-research/INDEX.md` before searching the web or opening a | ||
| new GitHub issue. | ||
| 3. Treat a matter memo in that index as the canonical research record. GitHub | ||
| issues are discussion and action mirrors, not the source of truth. | ||
| 4. Keep research separate from changes to `LICENSE`. Do not turn a researched | ||
| scenario into license text unless the user expressly asks for drafting. | ||
| 5. Preserve the attorney-review gate in `LEGAL-REVIEW.md`. | ||
|
|
||
| For non-legal work, follow the repository's existing documentation and tests. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,133 @@ | ||
| # Agent workflow for legal research | ||
|
|
||
| These instructions apply throughout `paralegal-research/`. Read them before | ||
| doing legal research for this repository. | ||
|
|
||
| ## 1. Route the question before researching | ||
|
|
||
| Normalize the request into five fields: | ||
|
|
||
| - **actor** — licensor, copyright owner, contributor, distributor, service | ||
| operator, customer, or other claimant/defendant; | ||
| - **conduct or trigger** — distribution, remote network use, missed source | ||
| publication, notice omission, post-termination conduct, or another event; | ||
| - **jurisdiction** — country, court system, and state law when relevant; | ||
| - **issue or remedy** — liability, standing, injunction, damages, cure, | ||
| specific performance, evidence, or procedure; | ||
| - **time/version** — relevant license version, product release, and date. | ||
|
|
||
| Then read `INDEX.md` and search before creating anything. Start with: | ||
|
|
||
| ```console | ||
| rg -n -i "<key phrase>|<synonym>|<case>|<statute>" paralegal-research LICENSE LEGAL-REVIEW.md README.md | ||
| ``` | ||
|
|
||
| Search synonyms as well as the user's wording. For example, search `source | ||
| disclosure`, `corresponding source`, `specific performance`, `injunction`, and | ||
| `cure` for a request framed as “make the infringer publish.” | ||
|
|
||
| ## 2. Decide whether the question is already answered | ||
|
|
||
| Read the candidate memo's scope, short answer, assumptions, open questions, | ||
| and `last_verified` date. Classify the request as follows: | ||
|
|
||
| - `answered` — the memo covers the same material actor, conduct, jurisdiction, | ||
| remedy, and license version; its authorities remain current; and no open | ||
| point would materially change the answer. | ||
| - `partial` — the memo is analogous, but a different jurisdiction, claimant, | ||
| license clause, procedural posture, or unresolved fact matters. | ||
| - `unresearched` — no memo addresses the material question. | ||
| - `superseded` — a newer memo expressly replaces the old one. | ||
|
|
||
| Do not create a duplicate memo merely because the phrasing differs. Update the | ||
| existing memo when the legal question is materially the same. Create and | ||
| cross-link a child or related matter when the difference could change the | ||
| answer. A memo may become stale without changing its `research_status`; update | ||
| `last_verified` only after checking all time-sensitive authorities. | ||
|
|
||
| Allowed frontmatter values are: | ||
|
|
||
| - `research_status`: `unresearched`, `in-progress`, `partial`, `answered`, or | ||
| `superseded`. | ||
| - `legal_review`: `not-requested`, `pending`, `approved`, or | ||
| `changes-required`. | ||
|
|
||
| ## 3. Research in authority order | ||
|
|
||
| Prefer sources in this order: | ||
|
|
||
| 1. Operative repository text and version history. | ||
| 2. Statutes, regulations, court opinions, orders, and dockets. | ||
| 3. Official license text and materials from the license steward. | ||
| 4. Reputable secondary legal analysis for context and leads. | ||
| 5. Community posts or anonymous material only as leads to stronger sources. | ||
|
|
||
| For technical legal questions, use primary authority for the final proposition | ||
| whenever available. Record the court, jurisdiction, date, procedural posture, | ||
| precedential weight, direct URL, and verification date. | ||
|
|
||
| Never collapse these categories: | ||
|
|
||
| - a court's holding; | ||
| - a party's allegation or requested relief; | ||
| - a settlement term; | ||
| - a default judgment; | ||
| - dicta or commentary; | ||
| - an inference from multiple sources. | ||
|
|
||
| If a complaint asks for source disclosure, that does not prove a judge ordered | ||
| it. If parties settle on publication, that does not establish a generally | ||
| available judicial remedy. State those limits in the memo and authority card. | ||
|
|
||
| ## 4. File the result | ||
|
|
||
| Use `templates/MATTER.md` for a new question and assign the next `PR-####` ID. | ||
| Use `templates/AUTHORITY.md` and the next `AUTH-####` ID when a source is | ||
| nuanced, likely to be reused, or important to the answer. A routine source can | ||
| remain in a matter's source table. | ||
|
|
||
| File matters by their primary issue, not by the name of the person asking: | ||
|
|
||
| - `matters/remedies/` | ||
| - create another lowercase topic folder only when needed, such as `standing/`, | ||
| `scope/`, `registration/`, or `procedure/`. | ||
|
|
||
| File reusable authority cards by source type: | ||
|
|
||
| - `authorities/cases/` | ||
| - `authorities/statutes/` | ||
| - `authorities/licenses/` | ||
|
|
||
| Every completed research pass must: | ||
|
|
||
| 1. update the canonical matter rather than only a chat or issue; | ||
| 2. add or update authority cards where warranted; | ||
| 3. update `INDEX.md` in the same change; | ||
| 4. link related and superseded matters in both directions; | ||
| 5. state facts, assumptions, contrary authority, uncertainty, and open | ||
| questions; | ||
| 6. use absolute dates and set `last_verified` to the actual verification date; | ||
| 7. distinguish a descriptive conclusion from a recommendation; | ||
| 8. leave the license text unchanged unless drafting was expressly requested. | ||
|
|
||
| ## 5. GitHub and external actions | ||
|
|
||
| Repository memos are canonical. If the user asks for an issue, create one with | ||
| a concise summary, scope limits, open questions, and a link to the memo once | ||
| the memo is available. Add the issue URL to the memo. Do not open issues, | ||
| contact counsel, publish findings, or change external systems without user | ||
| authorization. | ||
|
|
||
| ## 6. Quality gate | ||
|
|
||
| Before declaring a matter answered, verify: | ||
|
|
||
| - the short answer responds to the normalized question; | ||
| - every important proposition has a direct, accessible source; | ||
| - requested relief is not described as awarded relief; | ||
| - current cases and statutes were checked recently; | ||
| - holdings are separated from settlements and commentary; | ||
| - the memo explains what would change the answer; | ||
| - local links resolve and `git diff --check` passes; | ||
| - legal review is not implied unless `legal_review: approved` is supported by | ||
| an identified attorney review. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| # Future research scenarios | ||
|
|
||
| These are candidate matters, not active assignments and not conclusions. Before | ||
| starting one, search `INDEX.md`, define the relevant facts and jurisdiction, | ||
| then assign the next matter ID. | ||
|
|
||
| | Priority | Scenario | Why it could change a decision | Expected output | | ||
| |---|---|---|---| | ||
| | High | FastLED §11.3 source-publication breach: remedies in the likely defendant forums | The current draft has a commercial-transfer trigger rather than AGPL network interaction, so the cause of action and equitable remedy may differ. | Jurisdiction-specific remedy matrix and pleading assumptions | | ||
| | High | Standing and chain of title | A steward, contributor, copyright owner, customer, and association may have different claims and available remedies. | Claimant-by-claimant standing map and evidence checklist | | ||
| | High | Copyright registration strategy | 17 U.S.C. §412 timing can determine access to statutory damages and attorney's fees. | Release-registration calendar and ownership prerequisites | | ||
| | High | Cure, reinstatement, and past liability | Restoring future permission may not erase damages or exposure for earlier unlicensed acts. | Timeline scenarios for first and repeat violations | | ||
| | Medium | Commercial-license value as damages evidence | A list price, negotiated fee, and reasonable royalty are not automatically interchangeable. | Evidentiary and valuation memo with contrary authority | | ||
| | Medium | Source disclosure as specific performance | Availability may depend on claimant, contract theory, state law, adequacy of damages, and feasibility of supervision. | Jurisdiction comparison and requested-relief drafting notes | | ||
| | Medium | Resellers, contract manufacturers, and exhaustion | Actor and transfer timing can determine who breached and what conduct can be enjoined. | Supply-chain fact patterns and responsibility matrix | | ||
| | Medium | Covered code boundaries | Templates, headers, generated files, firmware, and linked components may produce different source obligations. | Artifact-by-artifact scope analysis | | ||
| | Medium | Cross-border enforcement | Territorial limits, choice of law, service, and judgment enforcement may dominate the practical remedy. | Country-specific issue spotter for actual target markets | | ||
| | Medium | Evidence preservation and pre-suit investigation | Public repository history, shipped binaries, offers, notices, and communications may be necessary to prove timing and scope. | Lawful evidence checklist and preservation protocol for counsel review | | ||
|
|
||
| Do not research the entire backlog at once. Promote only the scenario needed for | ||
| a concrete decision, and record any assumptions that substitute for missing | ||
| facts. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| # Research index | ||
|
|
||
| Search this registry before opening a new matter. The matter memo is the | ||
| canonical answer; authority cards are reusable source analyses. | ||
|
|
||
| ## Matters | ||
|
|
||
| | ID | Question | Jurisdiction | Research | Legal review | Verified | Canonical memo | | ||
| |---|---|---|---|---|---|---| | ||
| | PR-0001 | What can a court order for AGPL-style source noncompliance, and can the result be source disclosure or a commercial license? | U.S. federal; California contract issues | answered | pending | 2026-08-25 | [Memo](matters/remedies/agpl-noncompliance-judicial-remedies.md) | | ||
|
|
||
| ## Reusable authorities | ||
|
|
||
| | ID | Authority | Type | Key use | Verified | Card | | ||
| |---|---|---|---|---|---| | ||
| | AUTH-0001 | *Jacobsen v. Katzer* | case | Open-source conditions and copyright enforcement | 2026-08-25 | [Card](authorities/cases/jacobsen-v-katzer.md) | | ||
| | AUTH-0002 | *MDY Industries v. Blizzard* | case | Ninth Circuit condition-versus-covenant framework | 2026-08-25 | [Card](authorities/cases/mdy-industries-v-blizzard.md) | | ||
| | AUTH-0003 | *Artifex Software v. Hancom* | case | GPL dual-license pleading and commercial-license damages theory | 2026-08-25 | [Card](authorities/cases/artifex-v-hancom.md) | | ||
| | AUTH-0004 | BusyBox / Westinghouse | case | Default-judgment injunction for GPL noncompliance | 2026-08-25 | [Card](authorities/cases/busybox-westinghouse.md) | | ||
| | AUTH-0005 | *Software Freedom Conservancy v. Vizio* | case | Third-party-beneficiary specific-performance theory | 2026-08-25 | [Card](authorities/cases/sfc-v-vizio.md) | | ||
| | AUTH-0006 | 17 U.S.C. §§ 502–505, 412 | statutes | Injunction, impoundment, monetary relief, fees, registration timing | 2026-08-25 | [Card](authorities/statutes/us-copyright-remedies.md) | | ||
| | AUTH-0007 | GNU AGPL version 3 | license | Network source offer, termination, cure, and reinstatement | 2026-08-25 | [Card](authorities/licenses/gnu-agpl-v3.md) | | ||
| | AUTH-0008 | BusyBox / Monsoon settlement | settlement | Negotiated publication, notice, controls, payment, and reinstatement | 2026-08-25 | [Card](authorities/cases/busybox-monsoon-settlement.md) | | ||
|
|
||
| ## Status key | ||
|
|
||
| - Research: `unresearched`, `in-progress`, `partial`, `answered`, or | ||
| `superseded`. | ||
| - Legal review: `not-requested`, `pending`, `approved`, or | ||
| `changes-required`. | ||
|
|
||
| The verification date reports when time-sensitive sources were last checked; | ||
| it is not an attorney approval date. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| # Paralegal research library | ||
|
|
||
| This directory is the durable home for preliminary legal research supporting | ||
| the FastLED licensing project. It is designed so that a future human or agent | ||
| can answer three questions quickly: | ||
|
|
||
| 1. Has this question already been researched? | ||
| 2. What proposition does the existing authority actually support? | ||
| 3. Where should a new finding be recorded so it can be reused? | ||
|
|
||
| The material here is research work product for attorney review. It is not legal | ||
| advice, does not establish an attorney-client relationship, and does not itself | ||
| change the project's license or policy. Do not label material privileged or | ||
| confidential unless counsel has directed that treatment. | ||
|
|
||
| ## Directory map | ||
|
|
||
| - `INDEX.md` — canonical registry of matters and reusable authorities. | ||
| - `BACKLOG.md` — scoped future scenarios; an entry is not authorization to | ||
| begin research. | ||
| - `matters/` — one canonical memo per concrete legal question. | ||
| - `authorities/` — reusable source cards for cases, statutes, and licenses. | ||
| - `templates/` — required structure for new matter memos and authority cards. | ||
| - `AGENTS.md` — mandatory research and filing workflow for agents. | ||
|
|
||
| ## Mental model | ||
|
|
||
| A **matter memo** answers a question. An **authority card** records what a | ||
| source can and cannot establish. The index routes readers to both. A GitHub | ||
| issue may collect discussion, review, or follow-up work, but it should point | ||
| back to the canonical memo rather than becoming the only copy of the research. | ||
|
|
||
| Research status and legal-review status are deliberately separate. A memo can | ||
| be complete enough to answer the research question while still awaiting an | ||
| attorney's review. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| --- | ||
| id: AUTH-0003 | ||
| title: Artifex Software, Inc. v. Hancom, Inc. | ||
| authority_type: case | ||
| jurisdiction: US-Northern-District-of-California | ||
| date: 2017-04-25 | ||
| authority_status: settled | ||
| last_verified: 2026-08-25 | ||
| related_matter_ids: | ||
| - PR-0001 | ||
| --- | ||
|
|
||
| # AUTH-0003: *Artifex Software, Inc. v. Hancom, Inc.* | ||
|
|
||
| ## Citation and source | ||
|
|
||
| - *Artifex Software, Inc. v. Hancom, Inc.*, No. 3:16-cv-06982 (N.D. Cal.). | ||
| - [Court order via GovInfo](https://www.govinfo.gov/content/pkg/USCOURTS-cand-3_16-cv-06982/pdf/USCOURTS-cand-3_16-cv-06982-2.pdf) | ||
|
Comment on lines
+6
to
+18
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win Align the Artifex metadata with the cited court orders. Line 6 records April 25, 2017, and Lines 23-26 describe the motion-to-dismiss posture. The court-order link on Line 18 is the September 12, 2017 partial-summary-judgment order. The two orders support different propositions. (docs.justia.com) Add direct links for both orders, or change the date, posture, and summary to describe only the linked order. Identify which order supports the commercial-license damages proposition. As per coding guidelines, authority records must preserve procedural posture and provide a direct primary-authority URL when available. 🤖 Prompt for AI AgentsSources: Coding guidelines, MCP tools |
||
| - [Free Software Foundation settlement update](https://www.fsf.org/blogs/licensing/update-on-artifex-v-hancom-gnu-gpl-compliance-case-1) | ||
|
|
||
| ## Procedural posture and weight | ||
|
|
||
| Federal trial-court pretrial ruling in a dispute involving GPL-licensed | ||
| Ghostscript and Artifex's alternative commercial license. The case later | ||
| settled. It is persuasive, not binding precedent, and supplies no final merits | ||
| judgment compelling source publication. | ||
|
|
||
| ## What it supports | ||
|
|
||
| - A dual-licensing plaintiff can plausibly pursue contract and copyright | ||
| theories based on GPL use and alleged noncompliance. | ||
| - The value of an available commercial license may be argued as a measure of | ||
| damages if supported by the facts and damages law. | ||
| - Use of GPL software does not itself mean the user accepted the separate | ||
| commercial license. | ||
|
|
||
| ## What it does not establish | ||
|
|
||
| - That a court may force the defendant to buy, or the owner to sell, a | ||
| commercial license. | ||
| - That the commercial list price automatically equals recoverable damages. | ||
| - That source disclosure was awarded after a merits trial. | ||
|
|
||
| ## Key facts and reasoning | ||
|
|
||
| Artifex offered Ghostscript under the GPL or a paid commercial license and | ||
| alleged that Hancom used and distributed it without satisfying the GPL. The | ||
| court allowed material theories to proceed and rejected the premise that | ||
| Artifex could simply impose a commercial agreement Hancom had not accepted. | ||
| The dispute ended by settlement before a final adjudication of the requested | ||
| source remedy. | ||
|
|
||
| ## Treatment in this repository | ||
|
|
||
| - Related matters: [PR-0001](../../matters/remedies/agpl-noncompliance-judicial-remedies.md) | ||
| - Recheck trigger: unsealed settlement material, later history, or controlling | ||
| authority on commercial-license benchmarks. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| --- | ||
| id: AUTH-0008 | ||
| title: BusyBox enforcement settlement with Monsoon Multimedia | ||
| authority_type: settlement | ||
| jurisdiction: US-Southern-District-of-New-York | ||
| date: 2007-10-30 | ||
| authority_status: settled | ||
| last_verified: 2026-08-25 | ||
| related_matter_ids: | ||
| - PR-0001 | ||
| --- | ||
|
|
||
| # AUTH-0008: BusyBox enforcement settlement with Monsoon Multimedia | ||
|
|
||
| ## Citation and source | ||
|
|
||
| - *Andersen v. Monsoon Multimedia, Inc.*, No. 07-cv-8205 (S.D.N.Y.). | ||
| - [Software Freedom Law Center settlement announcement](https://softwarefreedom.org/news/2007/oct/30/busybox-monsoon-settlement/) | ||
|
|
||
| ## Procedural posture and weight | ||
|
|
||
| Private settlement announced after a GPL enforcement complaint. Settlement | ||
| terms illustrate negotiated compliance tools but are not findings, holdings, | ||
| or proof that a court would order identical relief after litigation. | ||
|
|
||
| ## What it supports | ||
|
|
||
| - Parties can settle a GPL dispute through source publication, notice to past | ||
| recipients, compliance controls, payment, and conditional reinstatement of | ||
| distribution rights. | ||
| - Reinstatement can be negotiated after concrete compliance steps rather than | ||
| treated as automatic forgiveness of past conduct. | ||
|
|
||
| ## What it does not establish | ||
|
|
||
| - That a court adjudicated liability or ordered those terms. | ||
| - That public source disclosure is mandatory relief in every GPL or AGPL case. | ||
| - That the same terms would be appropriate for network-only use. | ||
|
|
||
| ## Key facts and reasoning | ||
|
|
||
| The announced resolution required Monsoon to publish BusyBox source, notify | ||
| prior recipients, appoint an open-source compliance officer, and pay an | ||
| undisclosed amount. The plaintiffs agreed to reinstate distribution rights after | ||
| compliance. Those are settlement choices made by the parties. | ||
|
|
||
| ## Treatment in this repository | ||
|
|
||
| - Related matters: [PR-0001](../../matters/remedies/agpl-noncompliance-judicial-remedies.md) | ||
| - Contrasting authority: [BusyBox / Westinghouse](busybox-westinghouse.md), | ||
| where relief was entered through default judgment. | ||
| - Recheck trigger: use of any term beyond the public announcement or discovery | ||
| of the operative settlement text. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Normalize all five routing fields before promoting a backlog scenario.
BACKLOG.mdasks the reader to searchINDEX.md, define only relevant facts and jurisdiction, and then assign an ID.paralegal-research/AGENTS.mdrequires actor, conduct or trigger, jurisdiction, issue or remedy, and time/version before the index and search step. The shorter flow can create a matter without the fields needed for duplicate and superseded-memo checks.Change this step to reference the full
AGENTS.mdrouting procedure, then assign the next matter ID.As per coding guidelines: normalize the request into actor, conduct or trigger, jurisdiction, issue or remedy, and time/version before reading
INDEX.mdand searching.🤖 Prompt for AI Agents
Source: Coding guidelines