Skip to main content

Reflective-writing analysis — metacognition, criticality, depth (Moon-style bands)

Project description

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-lookingnext 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reflection_analyser-0.3.0.tar.gz (183.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reflection_analyser-0.3.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file reflection_analyser-0.3.0.tar.gz.

File metadata

  • Download URL: reflection_analyser-0.3.0.tar.gz
  • Upload date:
  • Size: 183.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for reflection_analyser-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c4542a08283b12ceb542b4fc1fb24b23cb496af56ab783cb5a64fdb2732ce735
MD5 b257f29846d6b8b2ec138df9b202628a
BLAKE2b-256 a933289c76bde0342375571f86178a5a0177782151d23825841e7d38a975ceaa

See more details on using hashes here.

File details

Details for the file reflection_analyser-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for reflection_analyser-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5d11106b88f598baa151446a610ad3964a54b6c2674bda54bf5dea17a401945
MD5 cfee72a4d751f74a1d136e9df7c8cc69
BLAKE2b-256 a5404a6400c5361265b87b413568312486199b9f4b0720d4bfdd0d2c4f885fa1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page