You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+156-2Lines changed: 156 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,161 @@
2
2
3
3
Checks appellate brief PDFs for compliance with the North Dakota Rules of Appellate Procedure and produces an HTML compliance report with a recommended action: **Accept**, **Correction Letter**, or **Reject**.
4
4
5
-
## Quick Start
5
+
---
6
+
7
+
## Installing the Skill in Claude (Browser)
8
+
9
+
This section walks you through adding the Brief Compliance Checker to your Claude account so you can use it directly in a browser chat session. No programming knowledge is required.
10
+
11
+
### What You Need Before You Start
12
+
13
+
- A Claude account at [claude.ai](https://claude.ai) with a Pro, Team, or Enterprise plan (the skill requires the ability to upload files and use projects).
14
+
- The **`brief-compliance.zip`** file from this repository. You can download it from the repository's file list by clicking on `brief-compliance.zip` and then clicking the download button.
15
+
16
+
### Step-by-Step Installation
17
+
18
+
#### 1. Open Claude and Create a New Project
19
+
20
+
1. Go to [claude.ai](https://claude.ai) and sign in.
21
+
2. In the left sidebar, click **Projects**.
22
+
3. Click **Create Project** (or the **+** button).
23
+
4. Give your project a name, such as "Brief Compliance Checker".
24
+
5. Click **Create**.
25
+
26
+
#### 2. Upload the Skill Files to Project Knowledge
27
+
28
+
> **Important — upload to the *project*, not to a chat.** Files uploaded to Project Knowledge are available in every chat you open inside that project. If you instead drag a file into a regular chat window, it only exists in that single conversation and disappears when you start a new one. Make sure you are adding the file through the project settings, not the chat input box.
29
+
30
+
1. Inside your new project, look for the **Project Knowledge** section (sometimes labeled "Project files" or accessible via a paperclip/attachment icon in the project settings).
31
+
2. Click **Upload** or **Add files**.
32
+
3. Select the **`brief-compliance.zip`** file you downloaded earlier.
33
+
4. Wait for the upload to finish. Claude will unpack and index the contents automatically.
34
+
35
+
The ZIP file contains everything the skill needs: the analysis scripts, the bundled North Dakota appellate rules, check definitions, and the skill instructions.
36
+
37
+
#### 3. Set the Project Instructions
38
+
39
+
1. In your project settings, find the **Custom Instructions** field (also called "System prompt" or "Project instructions").
40
+
2. Open the file `SKILL.md` from this repository (or extract it from the ZIP). Copy its entire contents.
41
+
3. Paste the contents into the Custom Instructions field.
42
+
4. Save the project settings.
43
+
44
+
These instructions tell Claude how to run the compliance analysis step by step whenever you upload a brief.
45
+
46
+
#### 4. Verify the Installation
47
+
48
+
1. Open a new chat inside the project.
49
+
2. Type: **"Are you ready to check a brief for compliance?"**
50
+
3. Claude should respond confirming it can analyze appellate briefs against the North Dakota Rules.
51
+
52
+
If Claude does not seem to recognize the skill, double-check that:
53
+
- The ZIP file was uploaded to the project (not just to a regular chat).
54
+
- The SKILL.md contents were pasted into the project's Custom Instructions.
55
+
56
+
### A Note on Scope
57
+
58
+
The skill lives inside the project you created — it is not available in other projects or in regular (non-project) chats. Claude does not currently offer a way to install a skill globally across your entire account.
59
+
60
+
In practice this isn't a limitation: just **open all your brief-checking chats inside this one project**. You can create as many chats as you like within a project, and every one of them will have access to the skill files and instructions automatically. Think of the project as a dedicated "Brief Compliance Checker" app that's always ready when you need it.
61
+
62
+
---
63
+
64
+
## Using the Skill
65
+
66
+
Once installed, using the skill is straightforward. You upload a PDF of an appellate brief, and Claude produces a detailed compliance report.
67
+
68
+
### Checking a Brief
69
+
70
+
1.**Open a chat** inside your Brief Compliance Checker project.
71
+
2.**Drag and drop** your brief PDF into the chat window (or click the attachment/paperclip icon and select the file).
72
+
3.**Tell Claude what to do.** You can simply say:
73
+
74
+
> "Check this brief for compliance."
75
+
76
+
Or be more specific if you know the brief type:
77
+
78
+
> "Check this appellant brief for compliance."
79
+
>
80
+
> "This is an appellee brief. Please run a compliance check."
81
+
>
82
+
> "Check this reply brief."
83
+
84
+
4.**Wait for the analysis.** Claude will work through several phases automatically:
85
+
-**Extraction** — reads the PDF and measures formatting (paper size, margins, fonts, spacing, page count).
86
+
-**Mechanical checks** — compares measurements against Rule 32 requirements.
87
+
-**Semantic checks** — reads the brief text and evaluates whether required sections are present and adequate (Table of Contents, Statement of Issues, Argument, etc.).
88
+
-**Report generation** — combines all results into an HTML compliance report.
89
+
90
+
5.**Review the results.** Claude will:
91
+
- State the **recommended action**: Accept, Correction Letter, or Reject.
92
+
- Summarize any **failed checks**, grouped by severity.
93
+
- Provide a **downloadable HTML report** with full details.
94
+
95
+
### Understanding the Report
96
+
97
+
The HTML report has several sections:
98
+
99
+
-**Recommended Action** — a color-coded banner at the top:
100
+
-**Green (Accept)** — the brief appears to comply with all rules.
101
+
-**Yellow (Correction Letter)** — there are formatting issues that should be corrected, but the brief is not rejected outright.
102
+
-**Red (Reject)** — there are serious compliance failures that warrant rejection.
103
+
104
+
-**Failed Checks** — grouped into three severity levels:
105
+
-**Critical (Reject)** — violations that alone justify rejection (e.g., wrong paper size, font too small, over the page limit).
106
+
-**Correction Required** — problems that should be fixed but don't rise to rejection level (e.g., margin too narrow, missing paragraph numbering).
107
+
-**Advisory Notes** — minor issues or observations (e.g., oral argument notation not found, font style question).
108
+
109
+
-**Passed Checks** — an expandable section listing everything that passed. Click to expand.
110
+
111
+
-**Not Applicable** — checks that don't apply to this brief type (e.g., amicus-specific checks on an appellant brief).
112
+
113
+
Each failed check shows:
114
+
- A **check ID** (e.g., FMT-006) for reference.
115
+
- The **rule citation** (e.g., Rule 32(a)(5)), linked to the official rule text on ndcourts.gov.
116
+
- A **message** explaining what was found.
117
+
-**Details** with specifics — for font size issues, this includes a per-page breakdown showing which pages have undersized text and how many characters are affected.
118
+
119
+
### Tips for Best Results
120
+
121
+
-**Specify the brief type** if you know it. Auto-detection works for most appellant briefs but sometimes misidentifies appellee and reply briefs. Telling Claude the type up front avoids this.
122
+
123
+
-**Known false positives to watch for:**
124
+
-**Font size (FMT-006)**: Page numbers, footnote markers, and superscripts are often smaller than 12pt. The report now categorizes these separately (body text vs. header/footer vs. superscript) so you can see whether the issue is real body text or just incidental small characters. If the only noncompliant characters on a page are in the header/footer or superscript categories, the severity is downgraded to a note rather than a rejection.
125
+
-**Line spacing (FMT-009)**: The spacing detector can misread certain PDF encodings. If the brief was prepared in a standard word processor with double spacing selected, a spacing failure is likely a false positive.
126
+
-**Bottom margin (FMT-005)**: Page numbers at the bottom of the page are measured as content, which makes the bottom margin appear smaller than it really is.
127
+
128
+
-**You can ask follow-up questions.** After the report is generated, you can ask Claude things like:
129
+
- "Which pages have the font size issue?"
130
+
- "Is the Table of Contents adequate?"
131
+
- "What would need to be fixed for this brief to be accepted?"
132
+
- "Can you re-check this as an appellee brief instead?"
133
+
134
+
-**You can check multiple briefs** in the same chat session. Just upload another PDF and ask Claude to check it.
135
+
136
+
### Brief Types Supported
137
+
138
+
| Brief Type | Description | Page Limit |
139
+
|------------|-------------|------------|
140
+
| Appellant | Opening brief filed by the appealing party | 38 pages |
141
+
| Appellee | Response brief filed by the opposing party | 38 pages |
142
+
| Reply | Reply to the appellee's brief | 12 pages |
143
+
| Cross-Appeal | Brief when both parties appeal | 38 pages |
144
+
| Amicus Curiae | "Friend of the court" brief | 19 pages |
145
+
146
+
### What Rules Are Checked
147
+
148
+
The checker evaluates compliance against these North Dakota rules:
149
+
150
+
-**Rule 28** — Required contents of briefs (sections, formatting of arguments, etc.)
151
+
-**Rule 29** — Requirements for amicus curiae briefs
-**Rule 34** — Oral argument notation on the cover
155
+
-**Rule 3.4** — Privacy protection for personal identifiers in filings
156
+
157
+
---
158
+
159
+
## Developer Quick Start
6
160
7
161
```bash
8
162
# Set up the virtual environment
@@ -27,7 +181,7 @@ python app.py
27
181
-**`SKILL.md`** — Claude Code skill definition (deployed via symlink)
28
182
-**`deploy_skill.py`** — Cross-platform script to deploy the skill to `~/.claude/skills/`
29
183
30
-
## Skill Deployment
184
+
## Skill Deployment (Claude Code CLI)
31
185
32
186
The Claude Code skill (`/brief-compliance`) reads its files from `~/.claude/skills/brief-compliance/`. This repo is the single source of truth — `deploy_skill.py` copies the needed files into the skill directory.
0 commit comments