Skip to main content

reflection-analyser

Reflective-writing analysis — the lens-family member that reads a learning journal / reflection / portfolio entry as reflection, not just as prose.

document-analyser reads readability; this reads reflective depth. Different signals from the same words. Explicit-only (auto_routable: false) — same pattern as conversation-analyser: text and prose extensions auto-route to document-analyser; invoke reflection-analyser deliberately when you want the reflective-depth interpretation.

Built around the markers commonly used in reflective-writing rubrics (Moon's depth scale, Gibbs' reflective cycle, the SOLO taxonomy): metacognition, criticality, evidence linkage, affect language, and forward-looking action.

Install

pip install reflection-analyser

Optional: read .pdf / .docx / .pptx journals (otherwise plain-text / .md only):

pip install 'reflection-analyser[documents]'

Use

Python:

from reflection_analyser import ReflectionAnalyser

# From text directly
result = ReflectionAnalyser().analyse_text("Looking back, I realised that…")

# From a file (composes on document-analyser for binary docs when [documents] is installed)
result = ReflectionAnalyser().analyse("journal.md")
result = ReflectionAnalyser().analyse("journal.docx")  # requires [documents]

print(result.depth_band)               # "dialogic"
print(result.composite_depth_score)    # 0.62
print(result.metacognition.count)      # 7
print(result.criticality.count)        # 3

CLI:

reflection-analyser journal.md
reflection-analyser journal.txt --json
reflection-analyser journal.docx                 # needs [documents] extra
echo "Looking back…" | reflection-analyser -
reflection-analyser serve
reflection-analyser manifest

HTTP (reflection-analyser serve on port 8015):

curl -F file=@journal.md http://localhost:8015/analyse

Signals

For a piece of reflective writing:

  • Metacognition — first-person + cognitive verbs (I realised, I noticed, looking back, on reflection). Surface depth indicator.
  • Criticality — contrast/qualification phrases (however, in contrast, that said, on the other hand). Marker of dialogic vs descriptive reflection.
  • Evidence — references to specific moments, sources, dates, quotes — proper-noun and citation density. Concrete vs abstract.
  • Affect — emotion words (frustrated, surprised, confident, uncertain). Too few = clinical; presence indicates engagement.
  • Action / forward-looking — next time, going forward, I will, future-tense intent. Marker of transformative reflection.

Composite depth score (0–1) combines per-marker coverages; mapped to a Moon-style band:

Band Score Description
descriptive 0.0–0.25 "What happened" only — events recounted, little interpretation
dialogic 0.25–0.5 Some self-questioning + critical thought
critical 0.5–0.75 Multiple perspectives, evidence linkage, qualification
transformative 0.75–1.0 Forward-looking insight, evidence-linked, change-oriented

The score is a signal, not a grade — it's meant to inform human judgement, not replace it.

The family

What you want Use
Document text + readability document-analyser
Reflective depth on that text reflection-analyser (this)
Human-AI conversation analysis conversation-analyser
Any file → right engine auto-analyser

Limits

  • Lexicon-based v1 — fast, transparent, but catches phrasing not meaning. A reflective sentence without our trigger words underscores; a non-reflective sentence with I realised overscores.
  • English-only for v1.
  • Calibrated against generic reflective-writing rubrics; tune the band thresholds in _BAND_THRESHOLDS for your unit's specific rubric if needed.
  • Vision/LLM-augmented depth scoring is a possible follow-on; not in v1.

License

MIT

Metadata

Release files for reflection-analyser 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reflection-analyser 0.3.0
File Size Uploaded
reflection_analyser-0.3.0.tar.gz 183.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reflection-analyser 0.3.0
File Interpreter ABI Platform
reflection_analyser-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 197.3 kB

Release files / reflection_analyser-0.3.0.tar.gz

Download URL reflection_analyser-0.3.0.tar.gz
Size 183.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c4542a08283b12ceb542b4fc1fb24b23cb496af56ab783cb5a64fdb2732ce735
BLAKE2b-256 checksum
How to use checksums
a933289c76bde0342375571f86178a5a0177782151d23825841e7d38a975ceaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release files / reflection_analyser-0.3.0-py3-none-any.whl

Download URL reflection_analyser-0.3.0-py3-none-any.whl
Size 14.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5d11106b88f598baa151446a610ad3964a54b6c2674bda54bf5dea17a401945
BLAKE2b-256 checksum
How to use checksums
a5404a6400c5361265b87b413568312486199b9f4b0720d4bfdd0d2c4f885fa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page