Skip to content
This repository was archived by the owner on Apr 25, 2026. It is now read-only.

Commit 0233645

Browse files
Use semantic break prompt
1 parent 3e7c4dd commit 0233645

2 files changed

Lines changed: 123 additions & 20 deletions

File tree

.github/prompts/sembr.prompt.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
mode: "agent"
3+
description: "Agent that reformats Markdown files using Semantic Line Breaks according to the full SemBr specification. The output must be raw Markdown with applied semantic line breaks. Do not parse or interpret the output."
4+
---
5+
6+
# Task
7+
8+
Apply **Semantic Line Breaks (SemBr)** to all Markdown (`.md`)
9+
documents in the current project.
10+
11+
The output must be **raw Markdown** text, rewritten according to the
12+
specification below.
13+
14+
Do not include explanations, parsing, summaries, or comments — only
15+
return the rewritten Markdown document(s).
16+
17+
## Specification
18+
19+
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
20+
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this
21+
document are to be interpreted as described in RFC 2119.
22+
23+
1. Text written as plain text or a compatible markup language MAY use
24+
semantic line breaks.
25+
2. A semantic line break MUST NOT alter the final rendered output of the
26+
document.
27+
3. A semantic line break SHOULD NOT alter the intended meaning of the text.
28+
4. A semantic line break MUST occur after a sentence, as punctuated by a
29+
period (.), exclamation mark (!), or question mark (?).
30+
5. A semantic line break SHOULD occur after an independent clause as
31+
punctuated by a comma (,), semicolon (;), colon (:), or em dash (—).
32+
6. A semantic line break MAY occur after a dependent clause in order to
33+
clarify grammatical structure or satisfy line length constraints.
34+
7. A semantic line break is RECOMMENDED before an enumerated or itemized
35+
list.
36+
8. A semantic line break MAY be used after one or more items in a list in
37+
order to logically group related items or satisfy line length
38+
constraints.
39+
9. A semantic line break MUST NOT occur within a hyphenated word.
40+
10. A semantic line break MAY occur before and after a hyperlink.
41+
11. A semantic line break MAY occur before inline markup.
42+
12. A maximum line length of 80 characters is RECOMMENDED.
43+
13. A line MAY exceed the maximum line length if necessary, such as to
44+
accommodate hyperlinks, code elements, or other markup.
45+
46+
## Goals
47+
48+
1. For Writers:
49+
The agent SHALL structure Markdown text so that the physical layout
50+
of lines reflects the logical and semantic structure of the
51+
author's thoughts.
52+
2. For Editors:
53+
The agent SHALL produce output that makes grammatical and
54+
structural relationships easier to identify, supporting clear and
55+
efficient editing without changing meaning.
56+
3. For Readers:
57+
The agent SHALL ensure that applied semantic line breaks do not
58+
alter the rendered appearance or interpretation of the text in any
59+
Markdown renderer.
60+
61+
## Formatting Rules
62+
63+
- Preserve existing Markdown structure
64+
(headings, lists, code blocks, tables, HTML, etc.).
65+
- Skip fenced code blocks, inline code, and HTML verbatim.
66+
- Maintain paragraph integrity — do not insert empty lines unless
67+
already present.
68+
- When in doubt, prefer breaking after complete thoughts or clauses.
69+
- Output only the transformed Markdown content — do not add any
70+
metadata, explanations, or syntax highlighting.
71+
72+
## Input
73+
74+
Markdown file(s) from the workspace.
75+
76+
## Output
77+
78+
Raw Markdown text with Semantic Line Breaks applied.
79+
80+
Do **not** parse, explain, or wrap the output — return only the
81+
processed Markdown content.

README.md

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,41 @@
1414

1515
## Overview
1616

17-
This project offers an automated process to provision a [Devstack][1]
18-
development environment for working with OpenStack projects. The
19-
Virtual Machine is configured to share the OpenStack's projects source
20-
code to host machine. As result, it's possible to run system tests
21-
and use a local IDE during development.
17+
This project offers an automated process to provision a
18+
[Devstack][1] development environment for working with OpenStack
19+
projects.
20+
The Virtual Machine is configured to share the OpenStack's projects
21+
source code to host machine.
22+
As result, it's possible to run system tests and use a local IDE
23+
during development.
2224

2325
### Key Features
2426

25-
- **Automated Provisioning**: Uses Vagrant and shell scripts to automate the complete DevStack setup
26-
- **Multi-Project Support**: Enables flexible installation of 100+ OpenStack projects and plugins
27-
- **Development-Ready**: Provides shared source code between host and VM for seamless IDE integration
28-
- **Service Management**: Dynamically enables/disables services based on project requirements
29-
- **Configuration Flexibility**: Supports custom environment variables for advanced configuration
30-
- **Multi-Distribution Support**: Compatible with Ubuntu, Debian, and other Linux distributions
27+
- **Automated Provisioning**:
28+
Uses Vagrant and shell scripts to automate the complete DevStack
29+
setup
30+
- **Multi-Project Support**:
31+
Enables flexible installation of 100+ OpenStack projects and
32+
plugins
33+
- **Development-Ready**:
34+
Provides shared source code between host and VM for seamless IDE
35+
integration
36+
- **Service Management**:
37+
Dynamically enables/disables services based on project requirements
38+
- **Configuration Flexibility**:
39+
Supports custom environment variables for advanced configuration
40+
- **Multi-Distribution Support**:
41+
Compatible with Ubuntu, Debian, and other Linux distributions
3142

3243
## Setup
3344

3445
This project uses [Vagrant tool][2] for provisioning Virtual Machines
35-
automatically. It's highly recommended to use the _setup.sh_ script
36-
of the [bootstrap-vagrant project][3] for installing Vagrant
37-
dependencies and plugins required for its project. The script
38-
supports two Virtualization providers (Libvirt and VirtualBox).
46+
automatically.
47+
It's highly recommended to use the _setup.sh_ script of the
48+
[bootstrap-vagrant project][3] for installing Vagrant dependencies
49+
and plugins required for its project.
50+
The script supports two Virtualization providers (Libvirt and
51+
VirtualBox).
3952

4053
curl -fsSL http://bit.ly/initVagrant | PROVIDER=libvirt bash
4154

@@ -46,8 +59,8 @@ following instruction:
4659

4760
## Quick setup
4861

49-
It's possible to run this project without having to clone it. The following
50-
instruction allows its remote execution:
62+
It's possible to run this project without having to clone it.
63+
The following instruction allows its remote execution:
5164

5265
curl -fsSL https://raw.githubusercontent.com/electrocucaracha/lint-devstack/master/setup.sh | OS_PROJECT_LIST=octavia bash
5366

@@ -69,9 +82,18 @@ instruction allows its remote execution:
6982

7083
#### Notes on Environment Variables
7184

72-
- **OS_PROJECT_LIST**: Accepts project names from the [OpenStack Plugin Registry](https://docs.openstack.org/devstack/latest/plugin-registry.html). Multiple projects should be comma-separated (e.g., `OS_PROJECT_LIST=octavia,neutron,heat`)
73-
- **Custom Configuration**: Any variable prefixed with `LINT_DEVSTACK_` will be automatically added to the Devstack local.conf file with the prefix removed (e.g., `LINT_DEVSTACK_OFFLINE=True` becomes `OFFLINE=True`)
74-
- **Password Management**: Individual password variables override the generic `PASSWORD` variable for specific components
85+
- **OS_PROJECT_LIST**:
86+
Accepts project names from the
87+
[OpenStack Plugin Registry](https://docs.openstack.org/devstack/latest/plugin-registry.html).
88+
Multiple projects should be comma-separated
89+
(e.g., `OS_PROJECT_LIST=octavia,neutron,heat`)
90+
- **Custom Configuration**:
91+
Any variable prefixed with `LINT_DEVSTACK_` will be automatically
92+
added to the Devstack local.conf file with the prefix removed
93+
(e.g., `LINT_DEVSTACK_OFFLINE=True` becomes `OFFLINE=True`)
94+
- **Password Management**:
95+
Individual password variables override the generic `PASSWORD`
96+
variable for specific components
7597

7698
[1]: http://docs.openstack.org/developer/devstack/
7799
[2]: https://www.vagrantup.com/

0 commit comments

Comments
 (0)